一、Android客户端部分
1.新建一个activity——LoginActivity
新建一个LoginActivity以及其布局文件——activity_login.xml,布局结构如下图所示:
2.给登陆按钮和注册按钮一个点击事件。
需要给两个按钮一个点击事件,登陆功能实现与服务端交互,输入的用户名和密码与服务端的验证成功后才能跳转到主界面,否则提示失败;注册按钮实现跳转到注册界面。
public void onClick(View v){
int id = v.getId();
switch(id){
//登陆按钮点击事件
case R.id.btn_login:
new Thread(){
@Override
public void run() {
// TODO Auto-generated method stub
super.run();
try {
JSONObject json = new JSONObject();
json.put("UserName", username.getText().toString().trim());
json.put("PassWord", password.getText().toString().trim());
// httpPostMethod(json);
HttpUtils.httpPostMethod(url, json, handler);
} catch (JSONException e) {
// TODO Auto-generated catch block
Log.d("json", "解析JSON出错");
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}.start();
break;
//注册按钮点击事件
case R.id.btn_register:
Intent intent = new Intent(LoginActivity.this, RegisterActivity.class);
startActivity(intent);
break;
}
}
3.Handler消息处理机制
由于Android4.0以后,访问网络只能在子线程中实现,而子线程中又不能更新UI,所以需要借助于Handler消息处理机制来在子线程中更新UI。
注:url = "http://130.234.1.190/Test/login.php";这ip相当于测试php时的localhost,不过现在的localhost是手机,所以需要改为你的电脑的ip地址,并且测试机与电脑需要在同一局域网下;当然,若你的电脑的ip是