使用android中的SQLite检索当前登录用户的用户名

波斯蓝

我是android新手。我正在尝试制作一个简单的应用程序,用户可以在其中更新状态。我想显示状态和当前登录并更新状态的用户。我尝试了一些代码,它提供了用户名,但没有提供当前用户。如何获得当前用户名?谁能帮忙吗?

UpdateStatusActivity:

public class UpdateStatusActivity extends AppCompatActivity {

public EditText mUpdateStatusTextBox;
public Button mUpdateStatusButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_update_status);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    mUpdateStatusTextBox=(EditText)findViewById(R.id.updateStatusTextBox);
    mUpdateStatusButton=(Button)findViewById(R.id.updateStatusButton);
    mUpdateStatusButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            //get the status user has entered and convert to string
            String strUpdateStatus = mUpdateStatusTextBox.getText().toString();
            DatabaseUserDetails dbuserdeatils = new DatabaseUserDetails(getApplicationContext(),null,null,1);
            String strCurrentUsername = dbuserdeatils.getUsername();
            DatabaseStatusUpdate dbstatusupdate = new DatabaseStatusUpdate(getApplicationContext(),null,null,1);
            dbstatusupdate.saveStatus(strCurrentUsername,strUpdateStatus);
            Log.d("onclickStatus",strCurrentUsername);
            Log.d("onclickStatus",strUpdateStatus);
            Toast.makeText(UpdateStatusActivity.this,"Status updated",Toast.LENGTH_LONG).show();
            Intent intent = new Intent(UpdateStatusActivity.this,HomePageActivity.class);
            startActivity(intent);
        }
    });

}

}

DatabaseUserDetails:

@Override
public void onCreate(SQLiteDatabase db) {
    String CREATE_TABLE_CLASS = "CREATE TABLE  " + TABLE + "(" +
            COLUMN_USERNAME + " " + " TEXT," +
            COLUMN_PASSWORD + " " + " TEXT," +
            COLUMN_EMAIL + " TEXT)";
    Log.d("onCreate",CREATE_TABLE_CLASS);
    db.execSQL(CREATE_TABLE_CLASS);
}

public void insertEntry(String username,String password,String emailid )
{
    ContentValues values = new ContentValues();
    values.put(COLUMN_USERNAME, username);
    values.put(COLUMN_PASSWORD,password);
    values.put(COLUMN_EMAIL, emailid);
    SQLiteDatabase db = this.getWritableDatabase();
    db.insert(TABLE,null,values);
    Log.d("insertEntry",username);
    Log.d("insertEntry",password);
    Log.d("insertEntry",emailid);

    db.close();
}
public String getSinlgeEntry(String userName)
{   SQLiteDatabase db = this.getReadableDatabase();

    Cursor cursor=db.query(TABLE,  new String[] {COLUMN_USERNAME, COLUMN_PASSWORD}, COLUMN_USERNAME + " = ? " , new String[]{userName}, null, null, null);
  /*  Cursor cursor=db.query(TABLE, null, COLUMN_USERNAME + " =?", new String[]{userName}, null, null, null);*/
    if(cursor.getCount()<1) // UserName Not Exist
    {
        cursor.close();
        return "NOT EXIST";
    }
    cursor.moveToFirst();
    String password= cursor.getString(cursor.getColumnIndex(COLUMN_PASSWORD));
    Log.d("getSingleEntry",password);
    cursor.close();
    return password;
}
public String getUsername(){
    SQLiteDatabase db = this.getReadableDatabase();
    /*Cursor cursor = db.query(TABLE, new String[] {COLUMN_USERNAME, COLUMN_PASSWORD}, COLUMN_USERNAME , null, null, null, null);
    cursor.moveToFirst();*/
    String selectQuery = "SELECT "+COLUMN_USERNAME+ " FROM " + TABLE ;
    Cursor cursor = db.rawQuery(selectQuery, null);
    cursor.moveToFirst();
    String username=cursor.getString(cursor.getColumnIndex(COLUMN_USERNAME));
    return username;
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    db.execSQL("DROP TABLE IF EXISTS " + TABLE);
    onCreate(db);
}

DatabaseStatusUpdate:

public class DatabaseStatusUpdate extends SQLiteOpenHelper{

private static final int DATABASE_VERSION=1;
private static final String DATABASE_NAME = "statusupadteDB.db";
private static final String TABLE = "statusuodate";
public static final String COLUMN_USERNAME = "username";
public static final String COLUMN_STATUS = "status";

public DatabaseStatusUpdate(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
    super(context, DATABASE_NAME, factory, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
    String CREATE_TABLE_CLASS = "CREATE TABLE  " + TABLE + "(" +
            COLUMN_USERNAME + " " + " TEXT," +
            COLUMN_STATUS + " " + " TEXT)";
    Log.d("onCreate",CREATE_TABLE_CLASS);
    db.execSQL(CREATE_TABLE_CLASS);
}
public void saveStatus(String username, String status) {
    ContentValues values = new ContentValues();
    values.put(COLUMN_USERNAME,username);
    values.put(COLUMN_STATUS,status);
    SQLiteDatabase db = this.getWritableDatabase();
    db.insert(TABLE,null,values);
    Log.d("saveStatus",username);
    Log.d("saveStatus",status);
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

}
}
丹尼尔

您可以通过几种不同的方法来完成此操作。在登录活动中,只需通过意图传递当前用户名:

Intent intent = new Intent(this,HomePageActivity.class);
intent.putExtra(String currentUserNameKey, currentUsername);
startActivity(intent);

或在包含用户名和密码的数据库中,为标记为表的表创建一个新列,并在登录时isCurrentUser将其设置true为当前用户,然后在进行主页活动时,只需在数据库中查询该用户其isCurrentUser值是true这是一些示例代码:

DBHelper dbhelper = new DBHelper(this);
SQLiteDatabase db = dbhelper.getWritableDatabase();
Cursor cursor = db.query(Table, 
    username, 
    isCurrentUser + " = ? ",
    new String []{"true"},
    null, null, null);
cursor.moveToFirst();
String currentUsername = cursor.getString(cursor.getColumnIndex("username"));

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Java中获取登录用户名

在Django中使用电子邮件地址或用户名登录用户

如何使用JDBCRealm获得登录用户的用户名?

使用Spring Security时获取当前登录的用户名

Spring Security-检索当前尝试登录的用户的用户名

解析Android中的登录用户名和电子邮件

如何在QWeb Report Odo中获取当前的登录用户名

Python:如何获取登录用户的域\用户名

在Shiny R中从SQLite检索用户名和密码

Django登录用户=用户名永不为真

如何使用Session将html list元素更改为当前登录用户的用户名?

如何在Django的模型字段中添加已登录用户的用户名

如何获取Django中已登录用户的用户名?

如何使用django添加已登录用户的用户名

获取登录用户的完整用户名

获取登录用户名

如何获取当前Windows登录用户的用户名?

如何从.htpasswd登录用户名?

如何通过单点登录在asp.net中获取Windows登录用户名

Amazon Cognito使用用户名和密码登录用户

Grails:如何获取当前登录用户的用户名,以及需要进行哪些导入?

我的登录用户名和密码是什么?

在ASP Web应用程序中从LDAP获取当前登录用户名

用户名显示为root而不是登录用户?

如何获取当前登录用户authservice的用户名

显示当前登录的用户名

如何在 UWP App 中获取当前登录用户的用户名或 ID

将登录用户的用户名作为 Django 表单字段中的标签

如何在 Windows(7、8、8.1 和 10)中判断登录用户的用户名?