栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Android开发中实现用户注册和登陆的代码实例分享

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android开发中实现用户注册和登陆的代码实例分享

在android的应用中越来越多的包含了网络互动功能,这就带来了注册,登陆账号功能。本文完整的介绍对话框的方式实现用户登陆功能。

登陆效果: 应用程序判断当前用户还未登陆,弹出登陆对话框,用户输入账号和密码信息后,传到服务器验证,验证成功后,现实Toast 成功信息,并转到其他界面。

注册效果:用户如没有账号,则点击登陆对话框的 "没有账号,快速注册账号", 弹出注册界面,用户输入注册信息,点击注册按钮,注册成功后,弹出toast信息"注册成功",完成注册后,转到其他功能界面。

整个功能大体上分两块:登陆对话框:输入登陆信息,实现登陆功能,转到注册界面。注册对话框:输入注册信息,实现注册功能。

对话框界面布局xml文件:



  
  
  
  
  
   
  
  
  
   
    
   

后台业务逻辑:


  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文件:



  
  
  
  
  
  
  
   
  
   
   
    
  
  
   
    
    
  
  
  
   


后台业务逻辑:


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

两个网络接口功能:

//调用网络接口,实现登陆指令
Boolean flags=  UserDataServiceHelper.Login(Account, PassWord); 
//调用网络接口,实现注册指令
Boolean flags=  UserDataServiceHelper.Register(Account, PassWord,NiceName); 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/150896.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号