上周发了《 基于Android移动终端的微型餐饮管理系统的设计与实现》第一章,虽然是个简介,但是居然上了首页推荐,还有朋友评论了。写了这么久CSDN,还是第一次有人评论我的文章,真是受宠若惊,长期以来,我一直都以为,我玩的是CSDN单机版。当然,这也说明,我过去写的东西都太烂了,不过这也算是我真实水平的反应吧,希望随着自身水平的提高,能写出更好的博文来,即使写不出,也算是自己成长的记录吧。

今天我先来写一下侧滑菜单,如图:

侧滑菜单的实现方法有很多,网上也有完整的开源框架,现在如果用Android Studio开发的话,一开始选模板的时候就可以选择一个带侧滑菜单的模板。

具体实现方法可以看这篇文章:

http://blog.csdn.net/lmj623565791/article/details/36677279

我就把我写的代码贴出来给大家好了

xml文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/slidingmenu"android:layout_width="match_parent"android:layout_height="match_parent"android:background="@drawable/aiw2"android:orientation="vertical"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="50dp"android:gravity="center_vertical"android:text="@string/text_btnAddFragment"></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"><ImageViewandroid:layout_width="30dp"android:layout_height="30dp"android:layout_gravity="center"android:src="@drawable/leaf2" /><TextViewandroid:id="@+id/btnAddFragment"android:layout_width="match_parent"android:layout_height="50dp"android:gravity="center_vertical"style="@style/style_text"android:text="@string/text_btnAddFragment" /></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"><ImageViewandroid:layout_width="30dp"android:layout_height="30dp"android:layout_gravity="center"android:src="@drawable/leaf2" /><TextViewandroid:id="@+id/btnOrderFragment"android:layout_width="match_parent"android:layout_height="50dp"android:gravity="center_vertical"style="@style/style_text"android:text="@string/text_btnOrderFragment" /></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"><ImageViewandroid:layout_width="30dp"android:layout_height="30dp"android:layout_gravity="center"android:src="@drawable/leaf2" /><TextViewandroid:id="@+id/btnDataFragment"android:layout_width="match_parent"android:layout_height="50dp"android:gravity="center_vertical"style="@style/style_text"android:text="@string/text_btnDataFragment" /></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"><ImageViewandroid:layout_width="30dp"android:layout_height="30dp"android:layout_gravity="center"android:src="@drawable/leaf2" /><TextViewandroid:id="@+id/btnPrinterListFragment"style="@style/style_text"android:layout_width="match_parent"android:layout_height="50dp"android:gravity="center_vertical"android:text="@string/text_btnPrinterListFragment" /></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"><ImageViewandroid:layout_width="30dp"android:layout_height="30dp"android:layout_gravity="center"android:src="@drawable/leaf2" /><TextViewandroid:id="@+id/btnBluetoothFragment"android:layout_width="match_parent"android:layout_height="50dp"android:gravity="center_vertical"style="@style/style_text"android:text="@string/text_btnBluetoothFragment" /></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"><ImageViewandroid:layout_width="30dp"android:layout_height="30dp"android:layout_gravity="center"android:src="@drawable/leaf2" /><TextViewandroid:id="@+id/btnSignUpFragent"android:layout_width="match_parent"android:layout_height="50dp"android:gravity="center_vertical"style="@style/style_text"android:text="@string/text_btnSignUpFragent" /></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"><ImageViewandroid:layout_width="30dp"android:layout_height="30dp"android:layout_gravity="center"android:src="@drawable/leaf2" /><TextViewandroid:id="@+id/btnFoodListFragment"android:layout_width="match_parent"android:layout_height="50dp"android:gravity="center_vertical"style="@style/style_text"android:text="查看菜单" /></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"><ImageViewandroid:layout_width="30dp"android:layout_height="30dp"android:layout_gravity="center"android:src="@drawable/leaf2" /><TextViewandroid:id="@+id/btnClose"android:layout_width="match_parent"android:layout_height="50dp"android:gravity="center_vertical"style="@style/style_text"android:text="退出" /></LinearLayout><TextViewandroid:id="@+id/textView"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center_horizontal"android:textAppearance="?android:attr/textAppearanceSmall" />
</LinearLayout>

然后是java代码,因为侧滑菜单的主要代码基本都写在MainActivity里,我就都贴出来了,启动应用的时候就先启动这个activity,这个小应用主要也是这个activity了,各个页面基本都是以fragment的形式依附在这个activity里的,所以一些设置私有云的代码还有读写上次退出时所在状态的代码也在这里

package com.exapmle.pc.restaurantclient;import android.annotation.TargetApi;
import android.app.Activity;
import android.app.Fragment;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.ServiceConnection;
import android.content.SharedPreferences;
import android.os.Build;
import android.os.Bundle;
import android.os.IBinder;
import android.os.RemoteException;
import android.util.Log;
import android.view.View;
import android.widget.TextView;import com.exapmle.pc.restaurantclient.Bluetooth.PrinterConnectDialog;
import com.exapmle.pc.restaurantclient.Fragments.AddFragment;
import com.exapmle.pc.restaurantclient.Fragments.BluetoothConnectFragment;
import com.exapmle.pc.restaurantclient.Fragments.DataFragment;
import com.exapmle.pc.restaurantclient.Fragments.FoodListFragmet;
import com.exapmle.pc.restaurantclient.Fragments.OrderFragment;
import com.exapmle.pc.restaurantclient.Fragments.PrinterSettingFragment;
import com.exapmle.pc.restaurantclient.Fragments.SignUpFragment;
import com.gprinter.aidl.GpService;
import com.gprinter.io.GpDevice;
import com.gprinter.service.GpPrintService;
import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;import cn.bmob.v3.Bmob;/*
1.录入菜品
1.1 从手机获取照片
1.2 调用摄像头
1.3 菜名 价格 单位 简介 规格1 规格22.点餐3.数据统计*/
public class MainActivity extends Activity implements View.OnClickListener {private static final String strState = "state";private static final String strStateMain = "stateMain";private int stateMain = 1;private AddFragment addFragment;private OrderFragment orderFragment;private DataFragment dataFragment;private Fragment bluetoothFragment;private BluetoothConnectFragment printerListFragment;private SignUpFragment signUpFragment;private TextView tvAddFragment;private TextView tvOrderFragment;private TextView tvDataFragment;private TextView tvBluetoothFragment;private TextView tvPrinterListFragment;private TextView tvClose;private TextView tvSignUpFragment;private TextView btnFoodListFragment;private SlidingMenu menu;public static GpService mGpService= null;public static final String CONNECT_STATUS = "connect.status";private static final String TAG = "MainActivity";private PrinterServiceConnection conn = null;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Log.e(TAG,"4444444444444444444");//读取显示界面状态数据SharedPreferences sp = this.getSharedPreferences(strState, MODE_PRIVATE);if (sp.getInt(strStateMain, 0) != 0) {//如果这个key不存在的话返回的数值stateMain = sp.getInt(strStateMain, 1);} else {changeMainState(1);}// 初始化 Bmob SDK// 使用时请将第二个参数Application ID替换成你在Bmob服务器端创建的Application IDBmob.initialize(this, "******************************");connection();init();}/*以下为bluetooth建立连接的内容*/private void startService() {Intent i= new Intent(this, GpPrintService.class);startService(i);try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}}private void connection() {conn = new PrinterServiceConnection();Intent intent = new Intent("com.gprinter.aidl.GpPrintService");bindService(intent, conn, Context.BIND_AUTO_CREATE); // bindService}class PrinterServiceConnection implements ServiceConnection {@Overridepublic void onServiceDisconnected(ComponentName name) {Log.i("ServiceConnection", "onServiceDisconnected() called");mGpService = null;}@Overridepublic void onServiceConnected(ComponentName name, IBinder service) {mGpService = GpService.Stub.asInterface(service);}}private void init() {/*设置slidingmenu*/// configure the SlidingMenumenu = new SlidingMenu(this);menu.setMode(SlidingMenu.LEFT);// 设置触摸屏幕的模式menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);menu.setShadowWidthRes(R.dimen.shadow_width);//menu.setShadowDrawable(R.drawable.shadow);//menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);//SlidingMenu划出时主页面显示的剩余宽度menu.setBehindWidth(400);//设置SlidingMenu菜单的宽度// 设置渐入渐出效果的值menu.setFadeDegree(0.35f);/*** SLIDING_WINDOW will include the Title/ActionBar in the content* section of the SlidingMenu, while SLIDING_CONTENT does not.*/menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);//为侧滑菜单设置布局menu.setMenu(R.layout.slidingmenu_left);//设置要使菜单滑动,触碰屏幕的范围menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN);menu.setOnClickListener(this);/*设置slidingmenu里的按钮*/tvAddFragment= (TextView) findViewById(R.id.btnAddFragment);tvAddFragment.setOnClickListener(this);tvOrderFragment= (TextView) findViewById(R.id.btnOrderFragment);tvOrderFragment.setOnClickListener(this);tvDataFragment= (TextView) findViewById(R.id.btnDataFragment);tvDataFragment.setOnClickListener(this);tvBluetoothFragment=(TextView) findViewById(R.id.btnBluetoothFragment);tvBluetoothFragment.setOnClickListener(this);tvPrinterListFragment= (TextView) findViewById(R.id.btnPrinterListFragment);tvPrinterListFragment.setOnClickListener(this);tvSignUpFragment= (TextView) findViewById(R.id.btnSignUpFragent);tvSignUpFragment.setOnClickListener(this);tvClose= (TextView) findViewById(R.id.btnClose);tvClose.setOnClickListener(this);btnFoodListFragment= (TextView) findViewById(R.id.btnFoodListFragment);btnFoodListFragment.setOnClickListener(this);setFragment();}@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.btnClean: {break;}case R.id.btnSave: {break;}case R.id.btnAddFragment:{changeMainState(1);setFragment();break;}case R.id.btnOrderFragment: {//layoutBottom2.setBackgroundColor(Color.RED);changeMainState(2);setFragment();break;}case R.id.btnDataFragment: {//layoutBottom2.setBackgroundColor(Color.RED);changeMainState(3);setFragment();break;}case R.id.btnPrinterListFragment: {//layoutBottom2.setBackgroundColor(Color.RED);changeMainState(4);setFragment();break;}case R.id.btnBluetoothFragment: {//layoutBottom2.setBackgroundColor(Color.RED);changeMainState(5);//setFragment();printerList();break;}case R.id.btnSignUpFragent: {//layoutBottom2.setBackgroundColor(Color.RED);changeMainState(6);setFragment();break;}case R.id.btnFoodListFragment: {changeMainState(7);setFragment();break;}case R.id.btnClose: {finish();break;}default:break;}}//转跳到打印机列表private void printerList() {Log.d(TAG, "openPortConfigurationDialog ");Intent intent = new Intent(this,PrinterConnectDialog.class);boolean[] state = getConnectState();intent.putExtra(MainActivity.CONNECT_STATUS, state);this.startActivity(intent);}public boolean[] getConnectState() {boolean[] state = new boolean[GpPrintService.MAX_PRINTER_CNT];for (int i = 0; i < GpPrintService.MAX_PRINTER_CNT; i++) {state[i] = false;}for (int i = 0; i < GpPrintService.MAX_PRINTER_CNT; i++) {try {if (MainActivity.mGpService.getPrinterConnectStatus(i) == GpDevice.STATE_CONNECTED) {state[i] = true;}} catch (RemoteException e) {// TODO Auto-generated catch blocke.printStackTrace();}}return state;}private void changeMainState(int i) {stateMain = i;SharedPreferences sp = this.getSharedPreferences(strState, MODE_PRIVATE);SharedPreferences.Editor editor = sp.edit();editor.putInt(strStateMain, stateMain);editor.commit();menu.showContent();}@TargetApi(Build.VERSION_CODES.HONEYCOMB)private void setFragment() {FragmentManager fm = getFragmentManager();FragmentTransaction transaction = fm.beginTransaction();switch (stateMain) {case 1: {addFragment = new AddFragment();transaction.replace(R.id.layout_main, addFragment);changeMainState(1);break;}case 2: {orderFragment = new OrderFragment();transaction.replace(R.id.layout_main, orderFragment);changeMainState(2);break;}case 3: {dataFragment = new DataFragment();transaction.replace(R.id.layout_main, dataFragment);changeMainState(3);break;}case 4: {bluetoothFragment = new PrinterSettingFragment();transaction.replace(R.id.layout_main, bluetoothFragment);changeMainState(4);break;}case 5: {printerListFragment = new BluetoothConnectFragment();transaction.replace(R.id.layout_main, printerListFragment);changeMainState(5);break;}case 6: {signUpFragment = new SignUpFragment();transaction.replace(R.id.layout_main, signUpFragment);changeMainState(6);break;}case 7: {FoodListFragmet foodListFragmet = new FoodListFragmet();transaction.replace(R.id.layout_main, foodListFragmet);changeMainState(7);break;}default:break;}transaction.addToBackStack(null);transaction.commit();}}

Bmob云服务平台请看这里:

http://www.bmob.cn/

顺便把activuty_main.xml里的代码贴一下,里面虽然没有什么东西,但是这个界面很重要,因为其它界面都是依附在它上面的

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context=".MainActivity"><LinearLayoutandroid:id="@+id/layout_main"android:layout_width="match_parent"android:layout_height="0dp"android:layout_weight="8.3"android:orientation="horizontal"></LinearLayout></LinearLayout>

基于Android移动终端的微型餐饮管理系统的设计与实现2-侧滑菜单相关推荐

  1. 基于Android移动终端的微型餐饮管理系统的设计与实现1-简介

    这个是我做的毕业设计,又到了做毕业设计的季节了,贴出来给有需要的学弟妹做参考. 名字起得挺长的,其实就是一个low low的Android应用,连界面都没有美化,凑合凑合就交上去了,居然还评上了优秀毕 ...

  2. 基于Android移动终端的微型餐饮管理系统的设计与实现4——Android基础

    本章将介绍一些在开发中用到的一些常用且值得介绍的Android 基础知识和技术,包括Fragment.Slidingmenu.RecyelerView.HelloCharts框架和Ormlite框架. ...

  3. 基于Android移动终端的微型餐饮管理系统的设计与实现3-技术整合

    本来第三篇应该是写到一线具体功能的实现的,但是有朋友问到了一些很基础的知识,才意识到我有很多东西没有讲清楚,因为这个软件看起来很简单,但是对学生朋友来说却是整合了很多资源,用到了很多不同的技术的,所以 ...

  4. android学生个人事物管理系统,基于Android平台的学生个人事务管理系统的设计与实现(整理版).doc...

    DSJKFHJKDH FJDHJKFH KDSJH JKDHF JKDS HKJ HGFDSJHF JHFJK HFKSD JKFJDSKJF DSJF;DS 摘 要 Android智能手机越来越普及 ...

  5. android移动停车车位管理系统的分析与设计,基于Android与WiFi的智能停车管理系统的设计与实现...

    摘要: 伴随着我国人民平均收入的不断提高,汽车已经成为人们出行的主流交通工具,城区商业金融和医疗服务中心的"停车难"成为阻碍城市交通发展的一大难题.传统的停车引导方式缺乏高效的停车 ...

  6. android圆形巡检动画,基于Android平台的工程项目现场巡检管理系统

    摘要: 工程项目是企业效益的主要来源也是企业建立信誉的一个主要窗口和展示平台,施工项目的现场管理是工程管理的一个重要环节,关系到工程的质量,安全等问题,涉及到企业管理的各层次和施工现场的每一操作工人, ...

  7. 安卓设备门禁识别开发_基于Android和RFID的门禁管理系统

    基于 Android 和 RFID 的门禁管理系统 秦斌斌 ; 何极 ; 赵萌 ; 秦丽丽 [期刊名称] <无线通信技术> [年 ( 卷 ), 期] 2018(027)004 [摘要] 本 ...

  8. 基于JSP的餐饮管理系统的设计与实现

    技术:Java.JSP等 摘要: 二十一世纪的今天是一个以网络为中心的,集网络化,信息化,数字化的现代化社会.随着当今社会的飞速发展,互联网在人们生活中的应用也日渐广泛.如电子银行,电子商城,网络聊天 ...

  9. android收入管理系统,毕业设计(论文)-基于Android系统的家庭理财通软件的设计——收入管理模块.docx...

    PAGE 河北农业大学信息学院 本科毕业论文 题 目:基于Android系统的家庭理财通软件的 设计--收入管理模块 学 院: 信息科学与技术学院 专业班级: 计算机科学与技术0902班 学 号: 二 ...

最新文章

  1. 日均350000亿接入量,腾讯TubeMQ性能超过Kafka
  2. 未来五年人工智能将实现的五大突破
  3. TortoiseSVN使用详细步骤(一)
  4. 一维数组工具 OneArryasTools v1.1(doc生成正常)
  5. NumPy的思考……
  6. php curl_init不能用,curl_init()函数不起作用
  7. 取消预约的c语言代码大全,C语言机房机位预约系统课设(附源码).doc
  8. 数据重现之11.5.2:RAID5同步与异步的判断
  9. JAVA中Math类的random()方法使用
  10. mongodb 集群shard_MongoDB 分片集群环境搭建
  11. 【预测模型】基于matlab GUI AR模型线性预测【含Matlab源码 942期】
  12. 收集的一些:MAC苹果电脑安装vmware的序列号
  13. 三防电子产品美军标MIL-STD-810G
  14. jQuery画廊插件-GalleryView
  15. python如何进行数据挖掘_如何使用python实现文本数据挖掘?
  16. Ubuntu下启动图形界面startx报错connection to X server lost
  17. h5物体拖动_iH5高级教程:H5交互进阶,拖动物品效果
  18. (C#)Windows Shell 外壳编程系列总结
  19. KY-RTI分布仿真技术:第九章 综合演示
  20. 临摹 x 科幻 x AI | MixTalk S01-09

热门文章

  1. 从Java 8中的java.util.stream.Stream检索列表
  2. JavaScript控制台中的颜色
  3. WCF服务的REST / SOAP端点
  4. 对于webservice响应,text / xml与application / xml之间有什么区别
  5. 如何在Python中附加文件?
  6. 一天一个知识点 - 浅谈 JavaScript 的数据类型
  7. Android 项目集成腾讯X5浏览器内核
  8. 从零开始的webpack生活-0x003:html模板生成
  9. 使用async/await——Nodejs+ExpressJs+Babel
  10. 深入理解JVM之二:垃圾收集器概述