AndroidManifest.xmljava
<uses-permission android:name="android.permission.INTERNET"></uses-permission> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
布局文件:activity_main.xmlandroid
<RelativeLayout 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" > <EditText android:id="@+id/name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="38dp" android:ems="10" android:hint="帐户"> <requestFocus /> </EditText> <EditText android:id="@+id/password" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/name" android:layout_centerHorizontal="true" android:layout_marginTop="17dp" android:ems="10" android:hint="密码" android:inputType="textPassword" /> <TextView android:id="@+id/info" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/password" android:layout_centerHorizontal="true" android:layout_marginTop="17dp" android:gravity="center" android:text="欢迎使用本产品" /> <Button android:id="@+id/exit" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/name" android:layout_below="@+id/info" android:layout_marginLeft="16dp" android:layout_marginTop="16dp" android:text="离开" /> <Button android:id="@+id/login" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/exit" android:layout_alignBottom="@+id/exit" android:layout_alignRight="@+id/name" android:layout_marginRight="16dp" android:text="登录" /> </RelativeLayout>
MainActivity.java服务器
点击登陆按钮:网络
if(nameET!=null&&!nameET.getText().toString().equals("")&&passwordET!=null&&!passwordET.getText().toString().equals("")) { Log.e("登录", "login"); if(isConnect(MainActivity.this)!=false){ progressDialog = ProgressDialog.show(MainActivity.this, "请稍等", "正在登录...", true, false); } Thread t = new Thread(new MyRunnable(nameET .getText().toString(), passwordET.getText() .toString())); t.start(); }else{ Log.e("错误", "error"); if(nameET==null||nameET.getText().toString().equals("")){ nameET.setError("请输入名字"); } if(passwordET==null||passwordET.getText().toString().equals("")){ passwordET.setError("请输入密码"); } }
开启线程:ide
public class MyRunnable implements Runnable { String name, passcode; public MyRunnable(String name, String pass) { // TODO Auto-generated constructor stub this.name = name; this.passcode = pass; } @Override public void run() { //***这里进行网络链接、得到数据data***
//***用get或者post***
//数据data添加到bundle中布局
Message msg = new Message();
Bundle bundle = new Bundle();// 存放数据post
bundle.putString("returncode", data);this
msg.setData(bundle);spa
handler.sendMessage(msg); // 向Handler发送消息,更新UI线程
}
}
判断有无网络:
public static boolean isConnect(MainActivity activity) { // 获取手机全部链接管理对象(包括对wi-fi,net等链接的管理) try { ConnectivityManager connectivity = (ConnectivityManager) ((Activity) activity) .getSystemService(Context.CONNECTIVITY_SERVICE); if (connectivity != null) { // 获取网络链接管理的对象 NetworkInfo info = connectivity.getActiveNetworkInfo(); if (info != null && info.isConnected()) { // 判断当前网络是否已经链接 if (info.getState() == NetworkInfo.State.CONNECTED) { return true; } } } } catch (Exception e) { // TODO: handle exception Log.v("error", e.toString()); } return false; }
handler机制刷新UI:
Handler handler = new Handler() { @Override public void handleMessage(Message msg) { // TODO Auto-generated method stub Bundle b = msg.getData(); String returncode = b.getString("returncode"); if (returncode.equals("0")) { /** 返回码,0-登陆成功,1-帐号密码错误,2-服务器维护,3-未知错误 */ // 关闭ProgressDialog progressDialog.dismiss(); infoTV.setText("登录成功"); } else if (returncode.equals("1")) { progressDialog.dismiss(); infoTV.setText("帐号密码错误"); infoTV.setTextColor(getResources().getColor(android.R.color.holo_red_dark)); } else if (returncode.equals("2")) { progressDialog.dismiss(); infoTV.setText("服务器维护"); infoTV.setTextColor(getResources().getColor(android.R.color.holo_red_dark)); } else if (returncode.equals("3")) { progressDialog.dismiss(); infoTV.setText( "未知错误"); infoTV.setTextColor(getResources().getColor(android.R.color.holo_red_dark)); } else if (StatusCodestr.equals("StatusCode")) { progressDialog.dismiss(); } } };