我有一个聊天应用程序,可以将消息保存在Sqlite
数据库中。我需要在用户点击时为每个聊天加载所有邮件,并在活动中的ListView
中显示这些邮件。所以我想知道如何做到这一点?
我想到了几个方法来做到这一点
第一个选项:在为数组中的用户打开消息传递屏幕之前从数据库获取数据(消息,即字符串),并在启动消息传递活动时通过intent传递它们,然后显示消息onCreate()方法。
第二个选项:在创建活动时从数据库中获取数据(消息,即字符串)并显示它们。
第三个选项:根据Sqlite
赞赏任何其他想法。 感谢。
答案 0 :(得分:1)
在Activity中,在其他线程中加载sqlite db,加载完成后,将其打印在列表视图中。
new Thread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
//loading database
mHandler.sendMessage(msg);
}
}).start();
Handler mHandler = new Handler() {
public void handleMessage(Message msg) {
//update listview
};
};
答案 1 :(得分:1)
我要做的是在打开Activity时加载它们,但我不会加载所有消息,只会加载最后的X项。大多数用户不会在99%的时间内向上滚动到旧消息。
例如,您可以加载最后10条消息,然后(如果用户向上滚动)加载其他消息。
运气!!
答案 2 :(得分:1)
使用第二个选项。只需将唯一的聊天ID发送到chat screen
,然后用oncreate()
方法从数据库加载该聊天的所有消息,然后将所有消息绑定到listview.
< / p>