最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android開發(fā)中實(shí)現(xiàn)用戶注冊和登陸的代碼實(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)

整個功能大體上分兩塊:登陸對話框:輸入登陸信息,實(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)建用戶登陸的對話框
  * 登陸界面包含兩個按鈕
  * 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();
       
     }
   });
    
  }
  
  /*
  *定時線程做驗(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
       {
        //失敗 顯示錯誤信息
        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();   
  }
  /*
  *定時注冊程序
  * */
  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
       {
        //失敗 顯示錯誤信息
        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);
    }
  };

兩個網(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)文章

最新評論

开平市| 长岭县| 沁阳市| 万盛区| 曲沃县| 广饶县| 喀喇沁旗| 郧西县| 萨嘎县| 永顺县| 高密市| 鹿邑县| 平山县| 佛冈县| 枣阳市| 瑞金市| 两当县| 尼木县| 华宁县| 北流市| 天峨县| 五大连池市| 永年县| 科技| 苍溪县| 南漳县| 治县。| 平度市| 临澧县| 麦盖提县| 塘沽区| 新宁县| 腾冲县| 宁晋县| 嵊泗县| 蕉岭县| 盐亭县| 杂多县| 海林市| 奈曼旗| 汾西县|