gpt4 book ai didi

android - 尽管在恢复应用程序时有时将项目添加到适配器,但 ListView 为空

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:29:04 24 4
gpt4 key购买 nike

我在市场上有一个应用程序有一个我似乎无法解决的错误。今天我已经追踪到以下方法。

public void updateDealList(ArrayList<Deal> deals) {
// first call or showing bookmakrs (also gets called other times when adapter is null)
if (dealListAdapter == null || showingBookmarks || !dealListAdapter.moreDealsToDownload()) {
dealListAdapter = new EndlessDealListAdapter(getActivity(),
R.layout.deal_list_item, deals);
setListAdapter(dealListAdapter);
listView = getListView();
if (getActivity().findViewById(R.id.right_fragment_container)!=null){ // if tablet
listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
listView.setVerticalScrollbarPosition(View.SCROLLBAR_POSITION_LEFT);
}
showingBookmarks=false;
Log.d("UPDATE_DEAL_LIST", "Notified list created new" + dealListAdapter.getCount());
return; //PROBLEM OCCURS WHEN APP COMES IN HERE AFTER RESUMING
}
dealListAdapter.getDealListAdapter().clear();
for (Deal d: deals){
dealListAdapter.getDealListAdapter().add(d);
Log.d("UPDATE_DEAL_LIST", "added " + d.title);
}
dealListAdapter.notifyDataSetChanged();
Log.d("UPDATE_DEAL_LIST", "Notified list " + dealListAdapter.getCount());
}

此方法传递了一个交易对象数组列表,这些对象是从互联网上下载下来的。首次打开应用程序时,会从互联网上提取数据并调用上述方法,这会创建一个为 ListFragment 设置的新适配器。当用户请求更多交易时,也会调用此方法。

我遇到的问题是尽管适配器包含交易,但列表有时认为它是空的。当用户在他们的设备内存不足时恢复应用程序时(我假设部分应用程序已从 ram 中删除),这似乎会发生。此方法被调用并且 dealListAdapter 为空,因此创建了一个新方法并添加了交易。尽管发生这种情况,列表仍然是空的,用户必须强制关闭应用程序才能使其再次运行。

下面的行显示调用该方法时它进入 if 并且 21 笔交易被添加到适配器。不幸的是,该列表对用户来说是空的。

05-23 01:52:32.879: D/UPDATE_DEAL_LIST(3478): Notified list  created new21

最佳答案

一个想法(相当长的镜头:)

如果应用程序本身没有被杀死,只有 Activity 被杀死,系统会尝试重新创建 Activity 的最后状态,调用 onRestoreInstanceState()。如果应用程序被终止,则不会调用此方法 - 因此这是两者之间的重大区别之一。

ListActivity 覆盖 onRestoreInstanceState()。它确保列表在继续之前存在。如果该列表不存在,它会从默认位置扩充它。

如果您在 onResume() 中设置 contentView,请尝试将其移至 onCreate(),这可能会解决问题。

如果我看到该 Activity 的代码,我可以提供更多帮助。

关于android - 尽管在恢复应用程序时有时将项目添加到适配器,但 ListView 为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10712190/

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