Android实现机房座位预约系统

所属分类: 软件编程 / Android 阅读数: 65
收藏 0 赞 0 分享

本文实例为大家分享了Android实现预约系统的具体代码,供大家参考,具体内容如下

 

 

这周要去武汉开会,下周项目就得用上,所以,比较紧。加上导师不懂Android开发,只要开会就改需求,/(ㄒoㄒ)/~~反正他说先让学校用着,移动端和服务器的开发就给了两周时间。所以功能实现的比较简单,但代码做的比较容易扩展,都留了接口,后面更新起来也好做一些。通过这个工程,对Struts2的拦截器有了一些新体会。随着项目变大代码量变多,自然而然就会想起用一些设计模式了。不然代码根本没办法看。

整体是4个fragment,每个fragment里都有课程表的布局,课程可以从服务器传过来动态生成。其实很多都可以复用的布局,为了代码结构清晰,都分开写了。不然需要加控制器,调试起来心累。写的不好,还请大家多指教。做的还不完善,弄完以后再传上来。

Application里对数据进行持久化,这么做发现程序变得比较容易控制了。

Application

package com.example.myapplication;
import android.app.Application;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;

public class CustomApplication extends Application {
 public static final String serverAddress = "http://192.168.1.119";
// public static final String serverAddress = "http://10.187.86.63";
 public static final String serverPort = "8080/Person_proj/upload";
// public static final String serverPort = "8000";
 private static final String DEFAULT_NAME = "";
 private static final String DEFAULT_ID = "-1";
 private String name;
 private String id;
 private String room;
 private String myOrder="NULL";
 private boolean isLogin = false;


 public boolean isLogin() {
  SharedPreferences sp = getSharedPreferences("status", MODE_PRIVATE);
  return sp.getBoolean("islogin", false);
 }


 /**
  * 0为 未登录
  * 1为登录
  */
 public void setLogin(boolean isLogin) {
  SharedPreferences sp = getSharedPreferences("status", MODE_PRIVATE);
  Editor edit = sp.edit();
  edit.putBoolean("islogin", isLogin);
  edit.commit();
 }

 private int version;

 public int getVersion() {
  SharedPreferences sp = getSharedPreferences("status", MODE_PRIVATE);
  return sp.getInt("version",0);
 }

 public void setVersion(int version) {
  SharedPreferences sp = getSharedPreferences("status", MODE_PRIVATE);
  Editor edit = sp.edit();
  edit.putInt("version",version);
  edit.commit();
 }


 public String getMyOrder() {
  SharedPreferences sp = getSharedPreferences("status", MODE_PRIVATE);
  return sp.getString("order","NULL");
 }

 public void setMyOrder(String myOrder) {
  SharedPreferences sp = getSharedPreferences("status", MODE_PRIVATE);
  Editor edit = sp.edit();
  edit.putString("order",myOrder);
  edit.commit();
 }

 @Override
 public void onCreate() {
  super.onCreate();
  setName(DEFAULT_NAME); // 初始化全局变量
  setId(DEFAULT_ID);
 }

 public void setName(String name) {
  SharedPreferences sp = getSharedPreferences("status", MODE_PRIVATE);
  Editor edit = sp.edit();
  edit.putString("name", name);
  edit.commit();
 }

 public String getName() {
  SharedPreferences sp = getSharedPreferences("status", MODE_PRIVATE);
  return sp.getString("name", "none");
 }

 public String getId() {
  return id;
 }

 public void setId(String id) {
  this.id = id;
 }

 public void setRoom(String room) {
  this.room = room;
 }

 public String getRoom() {
  return room;
 }

}

做注册时的逻辑判断,onClick事件里:

boolean cancel = false;
  View focusView = null;

  String id = builder.getUserId().trim();
  String password = builder.getPassword().trim();
  String passwordConfirm = builder.getPasswordConfirm().trim();
  final String username = builder.getUsername().trim();

  // Check for a valid password.
  if (TextUtils.isEmpty(password)) {
   cancel = true;
   focusView = builder.getStuPwdEditText();
   }

  // Check for a valid password.
  if (TextUtils.isEmpty(passwordConfirm)) {
   cancel = true;
   focusView = builder.getStuPwdConfirmEditText();
   }

  if (!password.equals(passwordConfirm)) {
    cancel = true;
    focusView = builder.getStuPwdEditText();
    }

  // Check for a valid Id.
  if (TextUtils.isEmpty(id)) {
    cancel = true;
    focusView = builder.getStuIdEditText();
  }

  // Check for a valid username.
  if (TextUtils.isEmpty(username)) {
    cancel = true;
    focusView = builder.getStuNameEditText();
   }


  if(!MatchUtils.match(password)||!MatchUtils.match(passwordConfirm)){
   cancel = true;
   focusView = builder.getStuPwdEditText();
   ToastUtils.MyToast(getApplicationContext(), "密码只能为6位数字!");
    }

  if (cancel) {
   ToastUtils.MyToast(getApplicationContext(), "输入有误,请从新输入!");
   focusView.requestFocus();
   } else {
   //...这里做的网络请求
   // TODO signup 提交服务器Get请求
   // 符合接口规范
   final String url =app.serverAddress+":"+app.serverPort+"?"+"action=signin"+"&"+"username="+username+"&"+"oldpassword="+password;
   HttpUtils http = new HttpUtils();
   http.send(HttpMethod.GET, url, new RequestCallBack<String>() {

    @Override
    public void onSuccess(ResponseInfo<String> responseInfo) {
     Log.i("tag", "============success============"+responseInfo.result);
     ToastUtils.MyToast(getApplicationContext(), responseInfo.result);
     if(responseInfo.result.equals("success")){
    //注册成功,自动实现登录
     app.setLogin(true);
     app.setName(username);
    //更新UI
     Message m = Message.obtain();
     m.what=1;
     handler.sendMessage(m);
     ToastUtils.MyToast(getApplicationContext(), "注册成功,学号:"+username);
     }else{
     ToastUtils.MyToast(getApplicationContext(), responseInfo.result);
     }
    dialog.dismiss();
   }

  @Override
  public void onFailure(HttpException error, String msg) {
  ToastUtils.MyToast(getApplicationContext(), msg);
  dialog.dismiss();
  }
 });
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

更多精彩内容其他人还在看

Android网络编程之获取网络上的Json数据实例

这篇文章主要介绍了Android网络编程之获取网络上的Json数据实例,本文用完整的代码实例讲解了在Android中读取网络中Json数据的方法,需要的朋友可以参考下
收藏 0 赞 0 分享

Android中的windowSoftInputMode属性详解

这篇文章主要介绍了Android中的windowSoftInputMode属性详解,本文对windowSoftInputMode的9个属性做了详细总结,需要的朋友可以参考下
收藏 0 赞 0 分享

Android网络编程之UDP通信模型实例

这篇文章主要介绍了Android网络编程之UDP通信模型实例,本文给出了服务端代码和客户端代码,需要的朋友可以参考下
收藏 0 赞 0 分享

Android中使用ListView实现漂亮的表格效果

这篇文章主要介绍了Android中使用ListView实现漂亮的表格效果,本文用详细的代码实例创建了一个股票行情表格,需要的朋友可以参考下
收藏 0 赞 0 分享

Android中刷新界面的二种方法

这篇文章主要介绍了Android中刷新界面的二种方法,本文使用Handler、postInvalidate两种方法实现界面刷新,需要的朋友可以参考下
收藏 0 赞 0 分享

Android SDK三种更新失败及其解决方法

这篇文章主要介绍了Android SDK三种更新失败及其解决方法,需要的朋友可以参考下
收藏 0 赞 0 分享

Android学习笔记——Menu介绍(一)

Android3.0(API level 11)开始,Android设备不再需要专门的菜单键。随着这种变化,Android app应该取消对传统6项菜单的依赖。取而代之的是提供anction bar来提供基本的用户功能
收藏 0 赞 0 分享

Android学习笔记——Menu介绍(二)

这次将继续上一篇文章没有讲完的Menu的学习,上下文菜单(Context menu)和弹出菜单(Popup menu)
收藏 0 赞 0 分享

Android学习笔记——Menu介绍(三)

今天继续昨天没有讲完的Menu的学习,主要是Popup Menu的学习,需要的朋友可以参考下
收藏 0 赞 0 分享

Android显示网络图片实例

这篇文章主要介绍了Android显示网络图片的方法,以实例形式展示了Android程序显示网络图片的方法,非常具有实用价值,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多