android实现简易登录注册界面及逻辑设计

 更新时间:2021年6月24日 00:00  点击:1982

本文实例为大家分享了android实现登录注册界面及逻辑设计,供大家参考,具体内容如下

1. 第一步 新建文件(相信各位码农一定会这一步)略。

2. 第二步 登录注册界面设计

登录界面主要包括几大控件,如登录、注册按钮,账号(Button)、密码输入框(Editext)、复选框等。可以利用shape参数对控件进行美化。界面设计可以线性布局嵌套使用,这样可以很好的对控件调整,美化界面。

注册界面主要包括EdiText、Radio button、button、checkbox等,与登录界面相同,可以利用shape参数改变编辑框的颜色和边角,使得界面简洁而美化。

效果如下:

3. 第三步 注册界面逻辑设计

注册界面的逻辑功能为将注册的信息返回给登录界面(以及存入数据库),逻辑设计如下:

public class RegisterActivity extends AppCompatActivity {
    private String sex, infor;
    @Override
    protected void onCreate(Bundle saveInstanceState) {
        super.onCreate(saveInstanceState);
        setContentView(R.layout.activity_main2);
 /**
  *获取控件的id
  **/
        RadioGroup gender = (RadioGroup) findViewById(R.id.group);
        final RadioButton male = (RadioButton) findViewById(R.id.radioButton);
        final RadioButton female = (RadioButton) findViewById(R.id.radioButton2);
        final Spinner spinner = (Spinner) findViewById(R.id.spinner);
        final CheckBox c1 = (CheckBox) findViewById(R.id.checkBox);
        final CheckBox c2 = (CheckBox) findViewById(R.id.checkBox2);
        final CheckBox c3 = (CheckBox) findViewById(R.id.checkBox3);
        final CheckBox c4 = (CheckBox) findViewById(R.id.checkBox4);
        Button button1 = (Button) findViewById(R.id.but);
 /**
  * 获取checkbox里勾选的性别
  **/
        gender.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                if (checkedId == male.getId()) {
                    sex = male.getText().toString();
                } else {
                    sex = female.getText().toString();
                }
            }
        });
 /**
  * 设置注册按钮的事件监听器,实现从注册界面到登录界面的跳转
  **/
        Button buttton1 = (Button) findViewById(R.id.but);
        button1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
  /**
   * 将checkbox里的选中的值赋给hobby
   **/
                String hobby = " ";
                if (c1.isChecked()) {
                    hobby += c1.getText().toString();
                }
                if (c2.isChecked()) {
                    hobby += c2.getText().toString();
                }
                if (c3.isChecked()) {
                    hobby += c3.getText().toString();
                }
                if (c4.isChecked()) {
                    hobby += c4.getText().toString();
                }
  /**
   * 将Spinner里的值赋给spin,将所有的信息法如infor中
   **/
                String spin = spinner.getSelectedItem().toString();
                String site1 = ((EditText) findViewById(R.id.username1)).getText().toString();
                String site2 = ((EditText) findViewById(R.id.password1)).getText().toString();
                String site3 = ((EditText) findViewById(R.id.password2)).getText().toString();
                infor = "用户:" + site1 + "\n性别:" + sex + "\n学历:" + spin + "\n爱好:" + hobby;
  /**
   * 判断编辑框内容是否为空
   **/
                if (!"".equals(site1) && !"".equals(site2) && !"".equals(site3)) {
                    Toast.makeText(Main2Activity.this, infor, Toast.LENGTH_LONG).show();
                    if (site2.equals(site3)) {
                        Intent intent = new Intent(RegisterActivity.this, MainActivity.class);
   /**
    * 将注册的信息打包,通过intent传给登录程序
    **/                  
                        Bundle bundle = new Bundle();
                        bundle.putCharSequence("site1", site1);
                        bundle.putCharSequence("site2", site2);
                        bundle.putCharSequence("site3", site3);
                        bundle.putCharSequence("infor", infor);
                        intent.putExtras(bundle);
                        setResult(0x11, intent);
                        finish();
                    } else {
                        Toast.makeText(Main2Activity.this, "请确认密码一致", Toast.LENGTH_SHORT).show();
                    }
                } else {
                    Toast.makeText(Main2Activity.this, "请将信息填写完整", Toast.LENGTH_SHORT).show();
                }
            }
        });
    }
}

4. 第四步 登录界面逻辑设计

登录面的逻辑功能主要是获取注册界面返回的信息并填入编辑框,和将账号密码进行匹配,实现登录功能;

public class MainActivity extends AppCompatActivity {
 /**
  * 将注册界面返回的账号密码填入编辑框
  **/
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == 0x11 && resultCode == 0x11) {
            Bundle bundle = data.getExtras();
            String username = bundle.getString("site1");
            String password = bundle.getString("site2");
            String information=bundle.getString("infor");
            EditText et_username = (EditText) findViewById(R.id.username);
            EditText et_password = (EditText) findViewById(R.id.password);
            et_username.setText(username);
            et_password.setText(password);
            
        }
    }

    @Override
    protected void onCreate(Bundle saveInstanceState) {
        super.onCreate(saveInstanceState);
        setContentView(R.layout.activity_main);
        Button login = (Button) findViewById(R.id.login);
        final EditText ET_username = (EditText) findViewById(R.id.username);
        final EditText ET_password = (EditText) findViewById(R.id.password);
          Button btn = (Button) findViewById(R.id.btn);
 /**
  * 给登录按钮设置单击事件监听器
  **/
        login.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String inusername = ET_username.getText().toString();
                String inpassword = ET_password.getText().toString();
   if (inusername != null && inpassword != null) {
                if (inusername.equals("admin") && inpassword.equals("admin")){
                        Intent intent = new Intent(MainActivity.this, SuccessActivity.class);
                        startActivity(intent);

                    } else {

                        new AlertDialog.Builder(MainActivity.this).setTitle("登陆信息有误").setMessage("请输入正确的账户名与密码")
                                .setPositiveButton("确定", new DialogInterface.OnClickListener() {
                                    @Override
                                    public void onClick(DialogInterface dialogInterface, int i) {

                                    }
                                }).show();

                    }
                }
                    else {
                    Toast.makeText(MainActivity.this, "请输入用户名和密码", Toast.LENGTH_SHORT).show();
                }
            }
        });

    /**
     * 为注册按钮设置单机事件监听器
     **/
        btn.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View view) {
                Intent intent = new Intent(MainActivity.this, RegisterActivity.class);
                startActivityForResult(intent, 0x11);
            }
        });

    }
  
}

*5. 第五步 完善工作

具体的简易登录注册逻辑代码完成,接下来就可以为其设计启动界面和登录成功界面,注意:Activity组件需要在Mainfest文件里注册。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持猪先飞。

[!--infotagslink--]

相关文章

  • Android子控件超出父控件的范围显示出来方法

    下面我们来看一篇关于Android子控件超出父控件的范围显示出来方法,希望这篇文章能够帮助到各位朋友,有碰到此问题的朋友可以进来看看哦。 <RelativeLayout xmlns:an...2016-10-02
  • php中登录后跳转回原来要访问的页面实例

    在很多网站用户先访问一个要登录的页面,但当时没有登录后来登录了,等待用户登录成功之后肯定希望返回到上次访问的页面,下面我就来给大家介绍登录后跳转回原来要访问的页...2016-11-25
  • php中用curl模拟登录discuz以及模拟发帖

    本文章完美的利用了php的curl功能实现模拟登录discuz以及模拟发帖,本教程供参考学习哦。 代码如下 复制代码 <?php $discuz_url = &lsquo;ht...2016-11-25
  • Android开发中findViewById()函数用法与简化

    findViewById方法在android开发中是获取页面控件的值了,有没有发现我们一个页面控件多了会反复研究写findViewById呢,下面我们一起来看它的简化方法。 Android中Fin...2016-09-20
  • Android模拟器上模拟来电和短信配置

    如果我们的项目需要做来电及短信的功能,那么我们就得在Android模拟器开发这些功能,本来就来告诉我们如何在Android模拟器上模拟来电及来短信的功能。 在Android模拟...2016-09-20
  • 夜神android模拟器设置代理的方法

    夜神android模拟器如何设置代理呢?对于这个问题其实操作起来是非常的简单,下面小编来为各位详细介绍夜神android模拟器设置代理的方法,希望例子能够帮助到各位。 app...2016-09-20
  • android自定义动态设置Button样式【很常用】

    为了增强android应用的用户体验,我们可以在一些Button按钮上自定义动态的设置一些样式,比如交互时改变字体、颜色、背景图等。 今天来看一个通过重写Button来动态实...2016-09-20
  • Android WebView加载html5页面实例教程

    如果我们要在Android应用APP中加载html5页面,我们可以使用WebView,本文我们分享两个WebView加载html5页面实例应用。 实例一:WebView加载html5实现炫酷引导页面大多...2016-09-20
  • 深入理解Android中View和ViewGroup

    深入理解Android中View和ViewGroup从组成架构上看,似乎ViewGroup在View之上,View需要继承ViewGroup,但实际上不是这样的。View是基类,ViewGroup是它的子类。本教程我们深...2016-09-20
  • Android自定义WebView网络视频播放控件例子

    下面我们来看一篇关于Android自定义WebView网络视频播放控件开发例子,这个文章写得非常的不错下面给各位共享一下吧。 因为业务需要,以下代码均以Youtube网站在线视...2016-10-02
  • Android用MemoryFile文件类读写进行性能优化

    java开发的Android应用,性能一直是一个大问题,,或许是Java语言本身比较消耗内存。本文我们来谈谈Android 性能优化之MemoryFile文件读写。 Android匿名共享内存对外A...2016-09-20
  • Android设置TextView竖着显示实例

    TextView默认是横着显示了,今天我们一起来看看Android设置TextView竖着显示如何来实现吧,今天我们就一起来看看操作细节,具体的如下所示。 在开发Android程序的时候,...2016-10-02
  • Ruby on Rails实现最基本的用户注册和登录功能的教程

    这里我们主要以has_secure_password的用户密码验证功能为中心,来讲解Ruby on Rails实现最基本的用户注册和登录功能的教程,需要的朋友可以参考下...2020-06-30
  • PHP中SSO Cookie登录分析和实现

    什么是SSO?单点登录SSO(Single Sign-On)是身份管理中的一部分。SSO的一种较为通俗的定义是:SSO是指访问同一服务器不同应用中的受保护资源的同一用户,只需要登录一次,即通过一个应用中的安全验证后,再访问其他应用中的受保护...2015-11-08
  • android.os.BinderProxy cannot be cast to com解决办法

    本文章来给大家介绍关于android.os.BinderProxy cannot be cast to com解决办法,希望此文章对各位有帮助呀。 Android在绑定服务的时候出现java.lang.ClassCastExc...2016-09-20
  • PHP中SSO Cookie登录分析和实现

    什么是SSO?单点登录SSO(Single Sign-On)是身份管理中的一部分。SSO的一种较为通俗的定义是:SSO是指访问同一服务器不同应用中的受保护资源的同一用户,只需要登录一次,即通过一个应用中的安全验证后,再访问其他应用中的受保护...2015-11-08
  • php有效防止同一用户多次登录

    【问题描述】:同一用户在同一时间多次登录如果不能检测出来,是危险的。因为,你无法知道是否有其他用户在登录你的账户。如何禁止同一用户多次登录呢? 【解决方案】 (1) 每次登录,身份认证成功后,重新产生一个session_id。 s...2015-11-24
  • Android 实现钉钉自动打卡功能

    这篇文章主要介绍了Android 实现钉钉自动打卡功能的步骤,帮助大家更好的理解和学习使用Android,感兴趣的朋友可以了解下...2021-03-15
  • vue实现用户登录切换

    这篇文章主要为大家详细介绍了vue实现用户登录切换,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-04-22
  • Android 开发之布局细节对比:RTL模式

    下面我们来看一篇关于Android 开发之布局细节对比:RTL模式 ,希望这篇文章对各位同学会带来帮助,具体的细节如下介绍。 前言 讲真,好久没写博客了,2016都过了一半了,赶紧...2016-10-02