Android studio开发app设计登录界面、注册账号界面、查询用户信息数据库

为保护用户个人隐私和方便管理员进行用户信息管理与监测,几乎所有的App都具有注册与登录账号功能,因此本节将介绍如何注册账号并进行账号管理。

本设计具有如下功能和技术:
1显示与隐藏密码(TransformationMethod);
2记住用户名和密码(SharedPreferences);
3注册账号(SQLite数据库中创建和添加);
4登录系统(Intent);
5查询用户信息(SQLite数据库中查询)。

效果如图所示:
登录界面注册界面系统界面

1、显示与隐藏密码
为保证用户隐私安全,设置隐藏密码选项,通过点击“小眼睛”即可实现。该部分需分别添加图片“小眼睛”睁眼和闭眼两张图,接下来在Enter.java中直接编写代码即可。

关键代码如下所示:

eye.setOnClickListener(new View.OnClickListener() {
            //密码隐藏部分
            // @Override
            public void onClick(View v) {
                switch (v.getId()) {
                    case R.id.eye:
                        if (hide == true) {
                            eye.setImageResource(R.drawable.hide);  //不可见
                            TransformationMethod method = PasswordTransformationMethod.getInstance();  //隐藏
                            passtext1.setTransformationMethod(method);
                            hide = false;
                        } else {
                            eye.setImageResource(R.drawable.open);  //可见
                            HideReturnsTransformationMethod method = HideReturnsTransformationMethod.getInstance(); //可见
                            passtext1.setTransformationMethod(method);
                            hide = true;
                        }
                        int run = passtext1.getText().toString().length();
                        passtext1.setSelection(run);
                        break;
                }
            }

2、记住用户名和记住密码
当用户成功注册账号后,若登录时账号与密码输入无误,点击“→”方可进入系统。此时如果选中“记住用户名”和“记住密码”,当退出系统再次登录时便可以不必输入用户名和密码,直接点击“→”即可登录成功。

关键代码如下所示
对此功能进行“初始化设置”

 //记住用户名、密码
        checkBox1 = (CheckBox) this.findViewById(R.id.check1);
        checkBox2 = (CheckBox) this.findViewById(R.id.check2);
        String user = preferences.getString("userText1", null);
        if (user == null) {
            checkBox1.setChecked(false);        //用户名CheckBox,上次用户名输入错误时,本次不显示用户名
        } else {
            usertext1.setText(user);
            checkBox1.setChecked(true);         //用户名CheckBox,上次用户名输入正确时,本次显示用户名
        }
        String pass = preferences.getString("passText1", null);
        if (pass == null) {
            checkBox2.setChecked(false);        //密码CheckBox,上次密码输入错误时,本次不显示密码
        } else {
            passtext1.setText(pass);
            checkBox2.setChecked(true);         //密码CheckBox,上次密码输入正确时,本次显示密码
        }

接下来对Button和EditText事件进行监听调用

if (checkBox1.isChecked()) {                //记住用户名 CheckBox1
                        editor.putString("userText1", url);//若选中,则补充EditText
                        editor.commit();
                    } else {
                        editor.remove("userText1");//否则,清空EditText
                        editor.commit();
                    }
if (checkBox2.isChecked()) {				//记住密码CheckBox2
                        editor.putString("passText1", text);//若选中,则补充EditText
                        editor.commit();
                    } else {
                        editor.remove("passText1");//否则,清空EditText
                        editor.commit();
                    }break;

3、注册账号
点击登录界面的注册按钮,则可切换至注册界面,用户需输入用户名、密码和确认密码。如果有一栏为空或两次密码不同则提示“注册失败,请更正后重新注册”,若注册成功,则会提示“注册成功,3s后自动跳转至登录界面”。

在本部分涉及以下知识点:
①创建数据库

dbHelper = new MyDatabaseHelper(Make.this, "usersStore.db", null, 2);
        dbHelper.getWritableDatabase();

②向数据库添加用户名和密码

values.put("user_name",name1);//用户名
values.put("user_code",code2);//密码

③判断用户信息是否无误

if (name1.equals("")||code1.equals("")||code2.equals("")||code1.equals(code2)==false){//三栏为空或两次密码不同则注册失败
                    Toast.makeText(Make.this,"注册失败,请更正后重新注册",Toast.LENGTH_SHORT).show();
                    make_name.setText("");
                    make_code.setText("");
                    sure_code.setText("");
                }
                else{
                    db.insert("users",null,values);
                    values.clear();
                    make_name.setText("");
                    make_code.setText("");
                    sure_code.setText("");
                    Toast.makeText(Make.this,"注册成功,3s后自动跳转至登录界面",Toast.LENGTH_SHORT).show();

④通过线程,延时3s并自动返回登录界面

Thread myThread=new Thread(){//创建子线程
                        @Override
                        public void run() {
                            try{
                                sleep(3000);//使程序休眠3秒
                                finish();//关闭当前活动,返回至登录界面
                            }catch (Exception e){
                                e.printStackTrace();
                            }
                        }
                    };
                    myThread.start();

4、登录系统
对登录界面中Button“→”事件进行监听,查询用户信息数据库,输入用户名和密码与数据库中一致等登录成功。

String url= usertext1.getText().toString().trim();
                String text = passtext1.getText().toString().trim();
                String key1="SELECT*FROM users where user_name like '%"+url+ "%'";
                SQLiteDatabase db1=dbHelper.getReadableDatabase();
                Cursor cursor1=db1.rawQuery(key1,null);
                if (cursor1.moveToFirst()){
                    do {
                        String user_name=cursor1.getString(cursor1.getColumnIndex("user_name"));
                        String user_code=cursor1.getString(cursor1.getColumnIndex("user_code"));
                        str1=user_name;
                        str2=user_code;
                    }while (cursor1.moveToNext());
                }
                cursor1.close();
                if (TextUtils.isEmpty(url)){
                    Toast.makeText(Enter.this, "用户名不能为空!", Toast.LENGTH_SHORT).show();
                }
                if (TextUtils.isEmpty(text)){
                    Toast.makeText(Enter.this, "密码不能为空!", Toast.LENGTH_SHORT).show();
                }
                if (url.equals(str1) && text.equals(str2)) {
                    Toast.makeText(Enter.this, "登陆成功", Toast.LENGTH_SHORT).show();
                    Intent intent = new Intent(Enter.this, User_ad.class);
                    startActivity(intent);

5、查询用户信息
登录系统后,点击查询按钮,即可查到所有注册成功的用户信息。

dbHelper5 = new MyDatabaseHelper(this, "usersStore.db", null, 2);
dbHelper5.getWritableDatabase();
final TextView ad_info=(TextView)this.findViewById(R.id.ad_info);
ad_info.setMovementMethod(ScrollingMovementMethod.getInstance());
query_user.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                switch (v.getId()){
                    case R.id.query_user:
                        SQLiteDatabase db1 = dbHelper5.getReadableDatabase();
                        Cursor c=db1.query("users",null,null,null,null,null,null);
                        if (c.moveToFirst()) {
                            do {
                                String user_name = c.getString(c.getColumnIndex("user_name"));
                                String user_code = c.getString(c.getColumnIndex("user_code"));
                                str10 += "用户名:" + user_name + ";" + "\n" + "密    码:" + user_code + ";" + "\n";
                            } while (c.moveToNext());}
                        c.close();
                        ad_info.setText(str10);
                        break;
                }
            }
        });

好啦,所有功能介绍到此结束。

最后,需要在Manifest中进行添加和更改Activity名称,此处对界面主题也进行更改

 <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="注册登录账号"
        android:supportsRtl="true"
        android:theme="@style/Theme.AppCompat.Light.NoActionBar">
        <activity android:name=".Enter">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".Make"></activity>
        <activity android:name=".User_ad"></activity>
    </application>

本次设计并不复杂。只需三个xml文件,分别对应三个界面(登录界面、注册界面、系统界面)的UI设计。四个.java文件,分别对应三个界面的事件监听和一个数据库设计。
还有一些小细节,比如图片背景,EditText背景之类的内容。
内容

对于普通开发来讲,各位亲可以忽略user_ad.xml和User_ad.java的内容,熟练掌握在数据库中注册账号就可以啦。

当当当当,重头戏来了,需要源码的点击此处即可获得👉Android studio开发app实现注册账号 登录界面 数据库监测界面

  • 19
    点赞
  • 343
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
安卓期末大作业-商城app-androidstudio开发(含注册登录数据库) 在安卓期末大作业中,我选择了开发一个商城app,并使用Android Studio进行开发,其中包括注册、登录和数据库功能。首先,我设计了一个用户友好的界面,包括商城的首页、商品详情、购物车和个人中心等页面。在注册功能上,我使用了Android Studio的相关组件和代码,实现了用户注册并将信息存储到数据库中。用户可以输入用户名、密码等信息进行注册,并且密码会进行加密处理,保障用户信息的安全性。 在登录功能上,我设计了一个登录界面用户可以输入已注册用户名和密码进行登录。登录成功后,用户可以浏览商城的商品,将喜欢的商品加入购物车,并在个人中心查看自己的订单等信息。同时,为了提高用户体验,我还设计用户退出登录的功能,保障用户账号安全。 在数据库设计上,我使用了SQLite数据库来存储用户注册信息、商品信息、订单信息等数据。通过SQL语句对数据库进行增删改查操作,保证了app的数据管理和存储功能。 整个开发过程中,我充分发挥了Android Studio的优势,利用其丰富的组件和功能,实现了商城app开发。在开发过程中,我遇到了一些问题,但通过查阅资料和不断的实践,最终都得到了解决。通过这次大作业的开发,我对安卓开发有了更深入的了解,掌握了开发商城app的基本流程和技术,提高了自己的编程能力和实际操作能力。希望能够在以后的学习和工作中,能够继续加深对安卓开发的认识,做出更多更优秀的app

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Run

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值