繁体   English   中英

如何在 SQLite Android 中使用单个登录活动登录两种用户类型(如管理员和用户)?

[英]How to login two user types (like admin and user) using single login activity in SQLite Android?

我需要在 android studio 中使用单个登录活动访问两个用户帐户。 有两种用户类型,称为“教师”和“学生”。 当我输入用户名和密码时,它应该自动检测用户是老师还是学生。 如果他是老师,则应重定向到学生活动。 如果他是学生,则应在登录后重定向到学生活动。 这些是我为此编写的代码。 但它不起作用。 有人可以帮我解决这个问题吗?

DBHandler 类中的代码

public Cursor isTeacher(String userName) {
    SQLiteDatabase db = getReadableDatabase();
    Cursor cursor = db.rawQuery("SELECT " + UserTable.Users.COLUMN_TYPE + " FROM " + UserTable.Users.TABLE_NAME + " WHERE " + UserTable.Users.TABLE_NAME + " =\"" + userName + "\"", null);

    return cursor;
}

登录类中的代码

login.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String user = userName.getText().toString();
            String pass = password.getText().toString();


            Boolean loginCheck = dbHandler.loginActivity(user,pass);
            if(loginCheck==true){
                Toast.makeText(getApplicationContext(),"Login Successful!",Toast.LENGTH_SHORT).show();

                Cursor teacher;
                teacher = dbHandler.isTeacher(user.trim());
                teacher.moveToFirst();
                String type = teacher.getString(0);
                if(type=="Teacher"){
                    Intent intent1 = new Intent(Login.this,Teacher.class);
                    startActivity(intent1);
                } else{
                    Intent intent2 = new Intent(Login.this,Student.class);
                    startActivity(intent2);
                }
            } else{
                Toast.makeText(getApplicationContext(),"Login Failed.",Toast.LENGTH_SHORT).show();
            }

        }
    });

谢谢你。

我会推荐:

  1. 用于数据库调用的 AndroidX Room
  2. 带有 AndroidX 导航组件的单个活动 + 多个片段
  3. 将逻辑拆分为 UI + ViewModel(LiveData) + Repo(数据库调用)

然后从片段观察loggingUser LiveData并导航到StudentFragment或TeacherFragment

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM