Android實(shí)現(xiàn)機(jī)房座位預(yù)約系統(tǒng)
本文實(shí)例為大家分享了Android實(shí)現(xiàn)預(yù)約系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下


這周要去武漢開會(huì),下周項(xiàng)目就得用上,所以,比較緊。加上導(dǎo)師不懂Android開發(fā),只要開會(huì)就改需求,/(ㄒoㄒ)/~~反正他說先讓學(xué)校用著,移動(dòng)端和服務(wù)器的開發(fā)就給了兩周時(shí)間。所以功能實(shí)現(xiàn)的比較簡(jiǎn)單,但代碼做的比較容易擴(kuò)展,都留了接口,后面更新起來也好做一些。通過這個(gè)工程,對(duì)Struts2的攔截器有了一些新體會(huì)。隨著項(xiàng)目變大代碼量變多,自然而然就會(huì)想起用一些設(shè)計(jì)模式了。不然代碼根本沒辦法看。
整體是4個(gè)fragment,每個(gè)fragment里都有課程表的布局,課程可以從服務(wù)器傳過來動(dòng)態(tài)生成。其實(shí)很多都可以復(fù)用的布局,為了代碼結(jié)構(gòu)清晰,都分開寫了。不然需要加控制器,調(diào)試起來心累。寫的不好,還請(qǐng)大家多指教。做的還不完善,弄完以后再傳上來。
Application里對(duì)數(shù)據(jù)進(jìn)行持久化,這么做發(fā)現(xiàn)程序變得比較容易控制了。
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;
}
}
做注冊(cè)時(shí)的邏輯判斷,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位數(shù)字!");
}
if (cancel) {
ToastUtils.MyToast(getApplicationContext(), "輸入有誤,請(qǐng)從新輸入!");
focusView.requestFocus();
} else {
//...這里做的網(wǎng)絡(luò)請(qǐng)求
// TODO signup 提交服務(wù)器Get請(qǐng)求
// 符合接口規(guī)范
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")){
//注冊(cè)成功,自動(dòng)實(shí)現(xiàn)登錄
app.setLogin(true);
app.setName(username);
//更新UI
Message m = Message.obtain();
m.what=1;
handler.sendMessage(m);
ToastUtils.MyToast(getApplicationContext(), "注冊(cè)成功,學(xué)號(hào):"+username);
}else{
ToastUtils.MyToast(getApplicationContext(), responseInfo.result);
}
dialog.dismiss();
}
@Override
public void onFailure(HttpException error, String msg) {
ToastUtils.MyToast(getApplicationContext(), msg);
dialog.dismiss();
}
});
}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Android實(shí)現(xiàn)通過手勢(shì)控制圖片大小縮放的方法
這篇文章主要介紹了Android實(shí)現(xiàn)通過手勢(shì)控制圖片大小縮放的方法,結(jié)合實(shí)例形式分析了Android控制圖片縮放的原理、實(shí)現(xiàn)步驟與相關(guān)操作技巧,需要的朋友可以參考下2016-10-10
Android重寫TextView實(shí)現(xiàn)文字整齊排版的方法(附demo源碼下載)
這篇文章主要介紹了Android重寫TextView實(shí)現(xiàn)文字整齊排版的方法,結(jié)合實(shí)例形式分析了Android重寫TextView實(shí)現(xiàn)文字整齊排版的相關(guān)技巧,并附帶demo源碼供讀者下載參考,需要的朋友可以參考下2016-02-02
Android使用OKhttp3實(shí)現(xiàn)登錄注冊(cè)功能+springboot搭建后端的詳細(xì)過程
這篇教程主要實(shí)現(xiàn)Android使用OKhttp3實(shí)現(xiàn)登錄注冊(cè)的功能,后端使用SSM框架,本文通過實(shí)例圖文相結(jié)合給大家介紹的非常詳細(xì),需要的朋友參考下吧2021-07-07
Android AlertDialog(對(duì)話框)實(shí)例詳解
Android在開發(fā)中經(jīng)常會(huì)遇到有彈框的需求,經(jīng)常使用的有Dialog彈框,Window彈框,他們之間最本質(zhì)的區(qū)別是dialog是非阻塞式對(duì)話框,popupwindow是阻塞式對(duì)話框,這篇文章主要給大家介紹了關(guān)于Android AlertDialog(對(duì)話框)的相關(guān)資料,需要的朋友可以參考下2021-11-11
Android中Java根據(jù)文件頭獲取文件類型的方法
這篇文章主要介紹了Android中Java根據(jù)文件頭獲取文件類型的方法,涉及Android針對(duì)文件屬性的相關(guān)操作技巧,需要的朋友可以參考下2016-08-08
Android?Hilt?Retrofit?Paging3使用實(shí)例
這篇文章主要介紹了Android?Hilt依賴注入的使用,首先,某個(gè)類的成員變量稱為依賴,如若此變量想要實(shí)例化引用其類的方法,可以通過構(gòu)造函數(shù)傳參或者通過某個(gè)方法獲取對(duì)象,此等通過外部方法獲取對(duì)象實(shí)例的稱為依賴注入2023-01-01
C/C++在Java、Android和Objective-C三大平臺(tái)下實(shí)現(xiàn)混合編程
本文主要介紹C/C++在Java、Android和Objective-C三大平臺(tái)下實(shí)現(xiàn)混合編程,這里舉例說明實(shí)現(xiàn)不同平臺(tái)用C/C++實(shí)現(xiàn)編程的方法,有興趣的小伙伴可以參考下2016-08-08

