任何人都可以帮助我找到一种将新用户(新注册)的字段展示到Android Studio应用程序中的方法



我正在开发一个需要用户注册的应用程序,数据库(sqlite)具有三个表,cliente表具有usuario表拥有的所有内容USUARIO表没有的更多行和具有注册用户所有信息的表Usuario,但是我不确定是否仍然需要这两个表,Trabalhador表和客户端表的ID,因为我注册了其中的任何一个,都将是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;
}

注册后要重定向的活动,但问题是使用此方法显示最后一个注册用户的数据。我可以创建一个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;
}

最新更新