繁体   English   中英

谁能帮我找到一种方法来将新用户(新注册)的字段显示到 Android Studio 应用程序的活动中?

[英]Could anyone help me find a way to show the fields of the a new user (newly registered) into an activity of an Android Studio app?

我正在开发一个需要注册用户的应用程序,数据库 (SQLite) 有三个表,一个包含 usuario 表所有内容的 cliente 表,一个包含 usuario 表没有的另外两行的 trabalhador 表,以及包含注册用户所有信息的 usuario 表,但我不确定是否还需要这两个表的 id,trabalhador 表和 cliente 表,因为如果我注册其中任何一个,两者都会成为 usuario ,但是在考虑如何向新注册用户展示他的新注册信息时,我有一个疑问。

我有一个好主意如何显示一个包含所有已注册用户信息的 ArrayList:

public ArrayList<Usuario> getAllUsuarios() {
ArrayList<Usuario> listaUsuarios = new ArrayList<Usuario>();
String query = "SELECT    *  FROM  " + TABELA_USUARIOS;
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(query, null);
if (cursor.moveToFirst()) {
    do {
        Usuario usuario = cursorToUsuario(cursor); //método criado no banco de dados
        listaUsuarios.add(usuario);

    } while
            (cursor.moveToNext());
}
return listaUsuarios;

}

我还在数据库中做了一个方法来只返回一个用户:

public Usuario getUsuario(int id) {
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.query(
        TABELA_USUARIOS,
        COLUNAS,
        "id = ?",
        new String[]{String.valueOf(id)},
        null, null, null, null);
if (cursor == null) {
    return null;
} else {
    cursor.moveToFirst();
    Usuario usuario = cursorToUsuario(cursor); //método também criado
    return usuario;
}

进入一个注册后要重定向的activity,但是问题是用这个方法来显示上次注册用户的数据。 我可以创建一个 ArrayList 来请求此活动中的所有注册用户:

    final ArrayList<Usuario> listaUsuarios = bd.getAllUsuarios();
ArrayAdapter<Usuario> adapter = new ArrayAdapter<Usuario>(this,
        android.R.layout.simple_list_item_1, listaUsuarios);
lvListaUsuarios.setAdapter(adapter);

我可以在此活动中显示所有用户,但是我无法获得正确的逻辑以仅显示最后一个用户...

如果有人能给我任何帮助,我将不胜感激。

您可以使用ORDER BY DESC或使用cursor.moveToLast()

ORDER BY DESC

public Usuario getLastUsuarios() {
    String query = "SELECT    *  FROM  " + TABELA_USUARIOS + " ORDER BY id DESC";
    SQLiteDatabase db = this.getReadableDatabase();
    Cursor cursor = db.rawQuery(query, null);
    if (cursor.moveToFirst()) {
        return cursorToUsuario(cursor);
    }

    // not found.
    return null;
}

使用cursor.moveToLast();

public Usuario getLastUsuario() {
   SQLiteDatabase db = this.getReadableDatabase();
   // get all rows in table.
   Cursor cursor = db.query(TABELA_USUARIOS, null, null, null, null, null, null);

   Usuario usuario = null;
   if (cursor != null) {
     cursor.moveToLast();
     usuario = cursorToUsuario(cursor);
   }

   cursor.close();
   return usuario;
}

暂无
暂无

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

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