成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Android實戰系統對話框實現登陸注冊功能

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

Android實例呈現效果和實現說明

登陸界面 

注冊界面

下面是實現的效果圖

實現的效果說明:

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

注冊效果:用戶如沒有賬號,則點擊登陸對話框的 “沒有賬號,快速注冊賬號”

彈出注冊界面,用戶輸入注冊信息,點擊注冊按鈕,注冊成功后,彈出toast信息”注冊成功”,完成注冊后,轉到其他功能界面。

功能實現說明:

整個功能大體上分兩塊

登陸對話框:輸入登陸信息,實現登陸功能,轉到注冊界面

注冊對話框:輸入注冊信息,實現注冊功能

#p#

2 登陸對話框的實現

2.1 對話框界面布局xml文件

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

#p#

2.2 后臺業務邏輯

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

#p#

 3 注冊對話框的實現
 3.1  對話框界面布局xml文件

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

#p#

3.2  后臺業務邏輯

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

【編輯推薦】

Android布局屬性詳解

谷歌Android UI設計技巧:框架特性

Android開發:Activity之間的傳值

 

Android中focusable屬性的妙用——底層按鈕的實現

責任編輯:zhaolei 來源: 網絡轉載
相關推薦

2011-07-01 11:33:00

Qt 模態 非模態

2009-12-28 13:47:35

WPF對話框

2010-01-28 16:55:26

Android對話框

2011-06-02 10:37:02

Android 對話框

2017-10-12 11:48:09

iOS系統彈窗Apple ID

2021-07-11 07:34:23

Windows 11操作系統微軟

2009-12-11 15:35:50

PHP彈出對話框

2009-12-28 14:32:31

WPF窗體對話框

2011-07-21 15:50:42

jQuery Mobi頁面對話框

2011-11-21 10:26:05

jQuery

2009-10-20 14:05:42

VB.NET路徑

2011-09-15 09:52:45

Delphi XE2

2010-09-29 15:56:02

J2ME對話框

2012-02-15 17:17:02

開放平臺

2009-12-29 15:24:48

WPF對話框

2010-01-11 09:33:32

VB.NET對話框調用

2011-11-23 09:47:36

Winform

2011-05-20 16:49:21

VB.NET

2011-07-22 15:32:53

iPhone 按鈕 對話框

2010-10-09 14:54:42

J2ME對話框
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩视频在线一区 | 先锋资源亚洲 | 久久亚洲国产 | 成人小视频在线观看 | 正在播放国产精品 | 日韩高清三区 | 亚洲国产精品视频一区 | 欧美日本一区二区 | 毛片av免费在线观看 | 亚洲欧美中文字幕在线观看 | 精品久久国产视频 | 日韩在线中文字幕 | 亚洲欧美日韩中文在线 | 亚洲精品一| 亚洲一区二区精品视频 | www.国产一区| 中文字幕在线一区二区三区 | 亚洲网址在线观看 | 亚洲情侣视频 | 一区二区三区在线 | 精品国产91久久久久久 | 成人一区二区电影 | 国产毛片久久久久久久久春天 | 国产欧美精品一区二区 | 亚洲成人福利视频 | 毛片入口 | 在线观看免费av网 | 欧美一区二区大片 | 国产一区二区三区四区五区加勒比 | 成人精品一区 | 日韩视频精品在线 | 亚洲免费在线视频 | 国产分类视频 | 国产精品久久久久久久久动漫 | 久久久精品一区二区三区 | 老司机久久| 自拍偷拍视频网 | 国产亚洲欧美在线 | 中国美女撒尿txxxxx视频 | 国产高清久久 | 伊人欧美视频 |