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

我正在开发一个需要用户注册的应用程序,数据库(sqlite)具有三个表,cliente表具有usuario表具有的所有内容,trabalhador表具有usuario表不具有的另外两行,并且table usuario拥有已注册用户的所有信息,但是我不确定是否仍然需要这两个表trabalhador表和cliente表的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;
}

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...