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

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

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

效果如图所示:
Android studio开发app设计登录界面、注册账号界面、查询用户信息数据库_第1张图片Android studio开发app设计登录界面、注册账号界面、查询用户信息数据库_第2张图片Android studio开发app设计登录界面、注册账号界面、查询用户信息数据库_第3张图片

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背景之类的内容。
Android studio开发app设计登录界面、注册账号界面、查询用户信息数据库_第4张图片

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

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

你可能感兴趣的:(sqlite,android,studio,java,xml)