在 ListView 中显示来自数据库的数据

Displaying data from database in ListView

我在 android 中有这段代码,可以将数据从数据库打印到日志中。

List<Message> messages = db.getAllMessages();

for (Message mg : messages) 
{
  String log = "Id: "+mg.getID()+", Message: " + mg.getMessage() + ", Time: " + mg.getDate();
  // display everything on log
  Log.d("", log);
}

如何在 ListView 中显示它而不是打印到日志?

首先,创建一个列表,如果还没有,您将在其中存储您的值。例如:

private ArrayList<String> YOUR_LIST = new ArrayList<>();

现在,在数组适配器中使用它:

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, YOUR_LIST);

最后,设置您的适配器:

ListView listView = (ListView) findViewById(R.id.YOUR_LISTVIEW);
listView.setAdapter(adapter);

在您的示例中, 可以做的事情是这样的:

List<Message> messages = db.getAllMessages();
ArrayList<String> YOUR_LIST = new ArrayList<>();

for (Message mg : messages) {
    String log = "Id: " + mg.getID() + ", Message: " + mg.getMessage() + ", Time: " + mg.getDate();
    YOUR_LIST.add(log);
}

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, YOUR_LIST);

ListView listView = (ListView) findViewById(R.id.YOUR_LISTVIEW);
listView.setAdapter(adapter)