一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - Android開發中實現用戶注冊和登陸的代碼實例分享

Android開發中實現用戶注冊和登陸的代碼實例分享

2020-03-06 19:57goldensun JAVA教程

這篇文章主要介紹了Android開發中實現用戶注冊和登陸的代碼實例分享,只是實現基本功能,界面華麗度就請忽略啦XD 需要的朋友可以參考下

在android的應用中越來越多的包含了網絡互動功能,這就帶來了注冊,登陸賬號功能。本文完整的介紹對話框的方式實現用戶登陸功能。

登陸效果: 應用程序判斷當前用戶還未登陸,彈出登陸對話框,用戶輸入賬號和密碼信息后,傳到服務器驗證,驗證成功后,現實Toast 成功信息,并轉到其他界面。

Android開發中實現用戶注冊和登陸的代碼實例分享

注冊效果:用戶如沒有賬號,則點擊登陸對話框的 "沒有賬號,快速注冊賬號", 彈出注冊界面,用戶輸入注冊信息,點擊注冊按鈕,注冊成功后,彈出toast信息"注冊成功",完成注冊后,轉到其他功能界面。

Android開發中實現用戶注冊和登陸的代碼實例分享

整個功能大體上分兩塊:登陸對話框:輸入登陸信息,實現登陸功能,轉到注冊界面。注冊對話框:輸入注冊信息,實現注冊功能。

對話框界面布局xml文件:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
 xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:orientation="vertical">
  
  <TextView
   android:id="@+id/txt_loginerror"
   android:layout_height="wrap_content"
   android:layout_width="wrap_content"
   android:layout_marginLeft="20dip"
   android:layout_marginRight="20dip"
   android:textColor="#ff0000"
   android:text="輸入的賬號和密碼不正確"
   android:gravity="left"
   android:textAppearance="?android:attr/textAppearanceMedium"
   android:visibility="invisible"
  />
  
  
  <TextView
   android:id="@+id/username"
   android:layout_height="wrap_content"
   android:layout_width="wrap_content"
   android:layout_marginLeft="20dip"
   android:layout_marginRight="20dip"
   android:text="賬號"
   android:gravity="left"
   android:textAppearance="?android:attr/textAppearanceMedium"
  />
   
  <EditText
   android:id="@+id/txt_username"
   android:layout_height="wrap_content"
   android:layout_width="fill_parent"
   android:layout_marginLeft="20dip"
   android:layout_marginRight="20dip"
   android:autoText="false"
   android:capitalize="none"
   android:gravity="fill_horizontal"
   android:textAppearance="?android:attr/textAppearanceMedium"
   />
  <TextView
   android:id="@+id/password"
   android:layout_height="wrap_content"
   android:layout_width="wrap_content"
   android:layout_marginLeft="20dip"
   android:layout_marginRight="20dip"
   android:textAppearance="?android:attr/textAppearanceMedium"
   android:text="密碼"
   android:gravity="left"
   />
  <EditText
   android:id="@+id/txt_password"
   android:layout_height="wrap_content"
   android:layout_width="fill_parent"
   android:layout_marginLeft="20dip"
   android:layout_marginRight="20dip"
   android:autoText="false"
   android:capitalize="none"
   android:gravity="fill_horizontal"
   android:textAppearance="?android:attr/textAppearanceMedium"
   />
   
    <TextView
   android:id="@+id/txt_toregister"
   android:layout_height="wrap_content"
   android:layout_width="wrap_content"
   android:layout_marginLeft="20dip"
   android:layout_marginRight="20dip"
   android:textColor="#2200C1"
   android:textAppearance="?android:attr/textAppearanceMedium"
   android:text="沒有賬號?快速注冊"
   android:gravity="left"
   />
   
</LinearLayout>

后臺業務邏輯:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
/*
  * 創建用戶登陸的對話框
  * 登陸界面包含兩個按鈕
  * 1按鈕為登陸
  * 2按鈕為不登陸試玩
  * */
  private void CreateLoginAlert()
  {
    AlertDialog.Builder ad =new AlertDialog.Builder(this);
    ad.setTitle("賬號登陸");
    ad.setView(ViewUtility.GetView(this,R.layout.sub_logindialog));
    adi= ad.create();
    
  
  /*  
    */
    adi.setButton("登陸", new OnClickListener(){
      @Override
      public void onClick(DialogInterface arg0, int arg1) {
      
        EditText password=  (EditText)adi.findViewById(R.id.txt_password);
        EditText account =(EditText)adi.findViewById(R.id.txt_username);
        
        PassWord=password.getText().toString();
        Account=account.getText().toString();
        //生成登陸對話框
        m_Dialog=ProgressDialog.show(Main.this, "請等待...", "正在為你登陸...",true);
        mRedrawHandler.sleep(100);   
      }
    });
    
    adi.setButton2("試 玩", new OnClickListener(){
      @Override
      public void onClick(DialogInterface arg0, int arg1) {
        ViewUtility.NavigateActivate(Main.this, SelectTheme.class);
      }
    });
    
    adi.show();
    
    
    //設置注冊點擊事件
    TextView register=(TextView)adi.findViewById(R.id.txt_toregister);
    register.setOnClickListener(new TextView.OnClickListener()
    {
     public void onClick(View v){
       //創建注冊對話框
      CreateRegisterAlert();
       adi.dismiss();
       
     }
   });
    
  }
  
  /*
  *定時線程做驗證用
  * */
  private RefreshHandler mRedrawHandler = new RefreshHandler();
  
  class RefreshHandler extends Handler {
    @Override
    public void handleMessage(Message msg) {
       
      try{
        
        //調用網絡接口,實現登陸指令
       Boolean flags=  UserDataServiceHelper.Login(Account, PassWord); 
       if(flags) 
       {
        //保存登陸信息
        UserDataWriteHelper uw=new UserDataWriteHelper(Main.this);
        uw.SaveUserInfoInDB("xuwenbing", Account);
        //提示登陸成功
        Toast.makeText(Main.this, "登陸成功", Toast.LENGTH_SHORT).show();   
        //轉到主題頁面
         ViewUtility.NavigateActivate(Main.this, SelectTheme.class);
       }else
       {
        //失敗 顯示錯誤信息
        Toast.makeText(Main.this, "登陸失敗", Toast.LENGTH_SHORT).show();
        adi.show();
        adi.findViewById(R.id.txt_loginerror).setVisibility(View.VISIBLE);
        }
      }
      catch(Exception e)
      {
        e.printStackTrace();             
      }
      finally{
        m_Dialog.dismiss();   
      }
    }
    public void sleep(long delayMillis) {
      this.removeMessages(0);
      sendMessageDelayed(obtainMessage(0), delayMillis);
    }
  };

對話框界面布局xml文件:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
 xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:orientation="vertical">
  
  <LinearLayout
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:orientation="horizontal"
  android:gravity="center"
  >
  <TextView
   android:id="@+id/txt_loginerror"
   android:layout_height="wrap_content"
   android:layout_width="wrap_content"
   android:layout_marginLeft="20dip"
   android:layout_marginRight="20dip"
   android:textColor="#ff0000"
   android:text="輸入的賬號和密碼不正確"
   android:gravity="left"
   android:textAppearance="?android:attr/textAppearanceMedium"
   android:visibility="invisible"
  />
  </LinearLayout>
  
  <LinearLayout
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:orientation="horizontal"
  
  >
  <TextView
   android:id="@+id/username"
   android:layout_height="wrap_content"
   android:layout_width="wrap_content"
   android:layout_marginLeft="20dip"
   android:layout_marginRight="20dip"
   android:text="賬號"
   android:gravity="left"
   android:textAppearance="?android:attr/textAppearanceMedium"
  />
   
  <EditText
   android:id="@+id/txt_username"
   android:layout_height="wrap_content"
   android:layout_width="fill_parent"
   android:layout_marginLeft="20dip"
   android:layout_marginRight="20dip"
   android:autoText="false"
   android:capitalize="none"
   android:gravity="fill_horizontal"
   android:textAppearance="?android:attr/textAppearanceMedium"
   />
   </LinearLayout>
   
    <LinearLayout
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:orientation="horizontal"
  
  >
  <TextView
   android:id="@+id/password"
   android:layout_height="wrap_content"
   android:layout_width="wrap_content"
   android:layout_marginLeft="20dip"
   android:layout_marginRight="20dip"
   android:textAppearance="?android:attr/textAppearanceMedium"
   android:text="密碼"
   android:gravity="left"
   />
  <EditText
   android:id="@+id/txt_password"
   android:layout_height="wrap_content"
   android:layout_width="fill_parent"
   android:layout_marginLeft="20dip"
   android:layout_marginRight="20dip"
   android:autoText="false"
   android:capitalize="none"
   android:gravity="fill_horizontal"
   android:textAppearance="?android:attr/textAppearanceMedium"
   />
   </LinearLayout>
    <LinearLayout
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:orientation="horizontal"
  >
    <TextView
   android:id="@+id/nicename"
   android:layout_height="wrap_content"
   android:layout_width="wrap_content"
   android:layout_marginLeft="20dip"
   android:layout_marginRight="20dip"
   android:textAppearance="?android:attr/textAppearanceMedium"
   android:text="昵稱"
   android:gravity="left"
   />
  <EditText
   android:id="@+id/txt_nicename"
   android:layout_height="wrap_content"
   android:layout_width="fill_parent"
   android:layout_marginLeft="20dip"
   android:layout_marginRight="20dip"
   android:autoText="false"
   android:capitalize="none"
   android:gravity="fill_horizontal"
   android:textAppearance="?android:attr/textAppearanceMedium"
   />
  
  </LinearLayout>
   
</LinearLayout>

后臺業務邏輯:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
/*創建注冊對話框*/
  private void CreateRegisterAlert()
  {
    //registerdialog
    AlertDialog.Builder ad =new AlertDialog.Builder(this);
    ad.setTitle("注冊賬號");
    ad.setView(ViewUtility.GetView(this,R.layout.sub_registerdialog));
    registerdialog= ad.create();
    
    registerdialog.setButton("注冊", new OnClickListener(){
      @Override
      public void onClick(DialogInterface arg0, int arg1) {
      
        EditText password=  (EditText)registerdialog.findViewById(R.id.txt_password);
        EditText account =(EditText)registerdialog.findViewById(R.id.txt_username);
        EditText nicename =(EditText)registerdialog.findViewById(R.id.txt_nicename);
        
        PassWord=password.getText().toString();
        Account=account.getText().toString();
        NiceName=nicename.getText().toString();
        //生成注冊對話框
        m_Dialog=ProgressDialog.show(Main.this, "請等待...", "正在為你注冊...",true);
        mRegsiterHandler.sleep(100);   
      }
    });
    
    registerdialog.setButton2("試 玩", new OnClickListener(){
      @Override
      public void onClick(DialogInterface arg0, int arg1) {
        ViewUtility.NavigateActivate(Main.this, SelectTheme.class);
      }
    });
    
    registerdialog.show();  
  }
  /*
  *定時注冊程序
  * */
  private RegsiterHandler mRegsiterHandler = new RegsiterHandler();
  
  class RegsiterHandler extends Handler {
    @Override
    public void handleMessage(Message msg) {
       
      try{
        
        //調用網絡接口,實現注冊指令
       Boolean flags=  UserDataServiceHelper.Register(Account, PassWord,NiceName); 
       if(flags) 
       {
        //保存注冊信息
        UserDataWriteHelper uw=new UserDataWriteHelper(Main.this);
        uw.SaveUserInfoInDB("xuwenbing", Account);
        //提示注冊成功
        Toast.makeText(Main.this, "注冊成功", Toast.LENGTH_SHORT).show();   
        //轉到主題頁面
         ViewUtility.NavigateActivate(Main.this, SelectTheme.class);
       }else
       {
        //失敗 顯示錯誤信息
        Toast.makeText(Main.this, "注冊失敗", Toast.LENGTH_SHORT).show();
        registerdialog.show();
        registerdialog.findViewById(R.id.txt_loginerror).setVisibility(View.VISIBLE);
        }
      }
      catch(Exception e)
      {
        e.printStackTrace();             
      }
      finally{
        m_Dialog.dismiss();   
      }
    }
    public void sleep(long delayMillis) {
      this.removeMessages(0);
      sendMessageDelayed(obtainMessage(0), delayMillis);
    }
  };

兩個網絡接口功能:

?
1
2
3
4
//調用網絡接口,實現登陸指令
Boolean flags=  UserDataServiceHelper.Login(Account, PassWord);
//調用網絡接口,實現注冊指令
Boolean flags=  UserDataServiceHelper.Register(Account, PassWord,NiceName);

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 奇米影视99 | 我的妹妹最近有点怪免费播放 | 天天色踪合合 | 黄 色 大 片 网站 | 日韩欧美一区二区三区中文精品 | 雪恋电影完整版免费观看 | 亚洲成年人在线观看 | 久久不射电影网 | 狠狠干2016| 女人又色又爽又黄 | 久久er99热精品一区二区 | 成人国产一区二区 | а天堂中文最新版在线 | aaa免费看 | 午夜神器18以下不能进免费 | 幻女free性俄罗斯第一次摘花 | 亚洲成人mv| 成人影院免费在线观看 | 无套暴躁白丝秘书 | 黑人艹| 青青色在线 | 九九热在线免费观看 | 亚洲激情综合 | 日本护士撒尿xxxx18 | 无限时间看片在线观看 | 91香蕉国产视频 | 公交车强校花系列小说 | 成年人在线播放视频 | 国产香蕉一区二区在线网站 | 美女被绑着吸下部的故事 | 久久精品99国产精品日本 | 华人亚洲欧美精品国产 | 青青草原在线免费 | 美女扒开尿口让男生添 漫画 | 国产精品成人va在线观看 | 国产主播精品在线 | 欧美一卡2卡3卡四卡海外精品 | 日本一区二区视频免费播放 | 亚洲欧美日韩国产一区图片 | 我和黑色丝袜班主任 | 草莓视频网站18勿进 |