欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android開發(fā)中實(shí)現(xiàn)用戶注冊和登陸的代碼實(shí)例分享

 更新時(shí)間:2015年12月01日 16:13:11   投稿:goldensun  
這篇文章主要介紹了Android開發(fā)中實(shí)現(xiàn)用戶注冊和登陸的代碼實(shí)例分享,只是實(shí)現(xiàn)基本功能,界面華麗度就請忽略啦XD 需要的朋友可以參考下

在android的應(yīng)用中越來越多的包含了網(wǎng)絡(luò)互動功能,這就帶來了注冊,登陸賬號功能。本文完整的介紹對話框的方式實(shí)現(xiàn)用戶登陸功能。

登陸效果: 應(yīng)用程序判斷當(dāng)前用戶還未登陸,彈出登陸對話框,用戶輸入賬號和密碼信息后,傳到服務(wù)器驗(yàn)證,驗(yàn)證成功后,現(xiàn)實(shí)Toast 成功信息,并轉(zhuǎn)到其他界面。

2015121161004202.jpg (480×800)

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

2015121161036365.jpg (480×800)

整個(gè)功能大體上分兩塊:登陸對話框:輸入登陸信息,實(shí)現(xiàn)登陸功能,轉(zhuǎn)到注冊界面。注冊對話框:輸入注冊信息,實(shí)現(xiàn)注冊功能。

對話框界面布局xml文件:

<?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>

后臺業(yè)務(wù)邏輯:

/*
  * 創(chuàng)建用戶登陸的對話框
  * 登陸界面包含兩個(gè)按鈕
  * 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(); 
    
    
    //設(shè)置注冊點(diǎn)擊事件
    TextView register=(TextView)adi.findViewById(R.id.txt_toregister);
    register.setOnClickListener(new TextView.OnClickListener()
    {
     public void onClick(View v){
       //創(chuàng)建注冊對話框
      CreateRegisterAlert();
       adi.dismiss();
       
     }
   });
    
  }
  
  /*
  *定時(shí)線程做驗(yàn)證用
  * */
  private RefreshHandler mRedrawHandler = new RefreshHandler();
  
  class RefreshHandler extends Handler {
    @Override
    public void handleMessage(Message msg) {
       
      try{
        
        //調(diào)用網(wǎng)絡(luò)接口,實(shí)現(xiàn)登陸指令
       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();    
        //轉(zhuǎn)到主題頁面
         ViewUtility.NavigateActivate(Main.this, SelectTheme.class);
       }else
       {
        //失敗 顯示錯(cuò)誤信息
        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文件:

<?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>

后臺業(yè)務(wù)邏輯:

/*創(chuàng)建注冊對話框*/
  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();   
  }
  /*
  *定時(shí)注冊程序
  * */
  private RegsiterHandler mRegsiterHandler = new RegsiterHandler();
  
  class RegsiterHandler extends Handler {
    @Override
    public void handleMessage(Message msg) {
       
      try{
        
        //調(diào)用網(wǎng)絡(luò)接口,實(shí)現(xiàn)注冊指令
       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();    
        //轉(zhuǎn)到主題頁面
         ViewUtility.NavigateActivate(Main.this, SelectTheme.class);
       }else
       {
        //失敗 顯示錯(cuò)誤信息
        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);
    }
  };

兩個(gè)網(wǎng)絡(luò)接口功能:

//調(diào)用網(wǎng)絡(luò)接口,實(shí)現(xiàn)登陸指令
Boolean flags=  UserDataServiceHelper.Login(Account, PassWord); 
//調(diào)用網(wǎng)絡(luò)接口,實(shí)現(xiàn)注冊指令
Boolean flags=  UserDataServiceHelper.Register(Account, PassWord,NiceName); 

相關(guān)文章

  • Mybatis如何獲取最新插入數(shù)據(jù)的id

    Mybatis如何獲取最新插入數(shù)據(jù)的id

    這篇文章主要介紹了Mybatis如何獲取最新插入數(shù)據(jù)的id,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • spring mvc url匹配禁用后綴訪問操作

    spring mvc url匹配禁用后綴訪問操作

    這篇文章主要介紹了spring mvc url匹配禁用后綴訪問操作,具有很好的參考價(jià)值,希望對大家有所幫助。以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家
    2021-07-07
  • springboot如何使用vue打包過的頁面資源

    springboot如何使用vue打包過的頁面資源

    這篇文章主要介紹了springboot如何使用vue打包過的頁面資源,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • Java中遞歸原理實(shí)例分析

    Java中遞歸原理實(shí)例分析

    這篇文章主要介紹了Java中遞歸原理,實(shí)例分析了java中遞歸的原理與實(shí)現(xiàn)方法,以及使用過程中的相關(guān)技巧,需要的朋友可以參考下
    2015-05-05
  • 如何在Maven項(xiàng)目配置pom.xml指定JDK版本和編碼

    如何在Maven項(xiàng)目配置pom.xml指定JDK版本和編碼

    maven是個(gè)項(xiàng)目管理工具,如果我們不告訴它要使用什么樣的jdk版本編譯,它就會用maven-compiler-plugin默認(rèn)的jdk版本來處理,這樣就容易出現(xiàn)版本不匹配的問題,這篇文章主要給大家介紹了關(guān)于如何在Maven項(xiàng)目配置pom.xml指定JDK版本和編碼的相關(guān)資料,需要的朋友可以參考下
    2024-01-01
  • 使用JAR包中MANIFEST.MF的注意事項(xiàng)

    使用JAR包中MANIFEST.MF的注意事項(xiàng)

    這篇文章主要介紹了使用JAR包中MANIFEST.MF的注意事項(xiàng),具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • IDEA 自動生成 JPA 實(shí)體類的圖文教程

    IDEA 自動生成 JPA 實(shí)體類的圖文教程

    這篇文章主要介紹了IDEA 自動生成 JPA 實(shí)體類的圖文教程,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Java 前臺加后臺精品圖書管理系統(tǒng)的實(shí)現(xiàn)

    Java 前臺加后臺精品圖書管理系統(tǒng)的實(shí)現(xiàn)

    相信每一個(gè)學(xué)生學(xué)編程的時(shí)候,應(yīng)該都會寫一個(gè)小項(xiàng)目——圖書管理系統(tǒng)。為什么這么說呢?我認(rèn)為一個(gè)學(xué)校的氛圍很大一部分可以從圖書館的氛圍看出來,而圖書管理系統(tǒng)這個(gè)不大不小的項(xiàng)目,接觸的多,也比較熟悉,不會有陌生感,能夠練手,又有些難度,所以我的小項(xiàng)目也來了
    2021-11-11
  • Java異常處理中的各種細(xì)節(jié)匯總

    Java異常處理中的各種細(xì)節(jié)匯總

    這篇文章主要給大家介紹了關(guān)于Java異常處理中的各種細(xì)節(jié)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-01-01
  • SpringBoot上傳和下載文件的原理解析

    SpringBoot上傳和下載文件的原理解析

    文件上傳的功能很常見,但是很多人并不清楚文件上傳后的具體原理,接下來通過本文給大家分享SpringBoot上傳和下載文件的原理解析,感興趣的朋友一起看看吧
    2021-07-07

最新評論