Java 有人能帮我找到一种方法,在Android Studio应用程序的活动中显示新用户(新注册)的字段吗?

Java 有人能帮我找到一种方法,在Android Studio应用程序的活动中显示新用户(新注册)的字段吗?,java,android,android-sqlite,Java,Android,Android Sqlite,我正在开发一个需要注册用户的应用程序,数据库(SQLite)有三个表,cliente表包含usuario表的所有内容,trabalhador表包含usuario表没有的另外两行内容,而usuario表包含注册用户的所有信息,但我不确定是否还需要这两个表的id,trabalhador表和cliente表,因为如果我注册其中任何一个,它们都将是usuario,但我在考虑如何向新注册的用户显示其新注册的信息时产生了疑问 我知道如何显示包含所有已注册用户信息的ArrayList: public Arra

我正在开发一个需要注册用户的应用程序,数据库(SQLite)有三个表,cliente表包含usuario表的所有内容,trabalhador表包含usuario表没有的另外两行内容,而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;
在注册后重定向到活动中,但问题是使用此方法显示上次注册用户的数据。 我可以创建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);
final ArrayList listaUsuarios=bd.getAllUsuarios();
ArrayAdapter=新的ArrayAdapter(此,
android.R.layout.simple_list_item_1,listaUsuarios);
lvListaUsuarios.setAdapter(适配器);
我可以显示此活动中的所有用户,但我在获取仅显示最后一个用户的正确逻辑时遇到问题


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

您可以使用
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()


请在复制粘贴代码之前尝试使用Ctrl+Alt+L。谢谢,您帮助了lot@GlaudistonNeto:不客气。如果此答案解决了问题,请将其标记为已接受答案。
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;
}
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;
}