【Android】Android 登陸界面設計和網絡鏈接及驗證登陸

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();
            }

        }

    };
相關文章
相關標籤/搜索