簡體   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