gpt4 book ai didi

android - Android onResume ListView 为空后

转载 作者:搜寻专家 更新时间:2023-11-01 07:39:46 24 4
gpt4 key购买 nike

我有一个 ListView,我试图用来自 SQL Lite 数据库的数据填充 onResume。在恢复过程中,我添加了一个点击监听器并重新填充 ListView 。 onResume、populateListView() 和 onPause 方法如下。完整source code is available on GitHub .

关于恢复:

@Override
protected void onResume() {
IntentFilter filter = new IntentFilter();
filter.addAction(TalkServerIntent.INTENT_NEW_MESSAGES.toString());
registerReceiver(receiver, filter);

setContentView(R.layout.main);

talkListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parentView, View childView,
int position, long id) {
GeoCamTalkMessage msg = adapter.getTalkMessage(position);
if (msg.hasAudio()) {
try {
UIUtils.playAudio(getApplicationContext(), msg, player,
siteAuth);
} catch (Exception e) {
UIUtils.displayException(getApplicationContext(), e,
"Cannot retrieve audio");
}
}
}
});

populateListView();
super.onResume();
}

填充 ListView :

private void populateListView() {
try {
talkMessages = messageStore.getAllMessages();
} catch (Exception e) {
Log.i("Talk", "Error:" + e.getMessage());
}

if (talkMessages != null) {
adapter.setTalkMessages(talkMessages);
talkListView.setAdapter(adapter);
}
}

我没有在 onPause 上做任何特别的事情,但由于值存储在数据库中,我认为我不必这样做。

暂停

@Override
protected void onPause() {
unregisterReceiver(receiver);
super.onPause();
}

我做错了什么导致 ListView 在恢复时不刷新?

最佳答案

您可以尝试将 setContentView(R.layout.main); 移动到您的 onCreate() 方法。

每次都在 onResume() 中设置它可能会导致问题。

关于android - Android onResume ListView 为空后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5642842/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com