gpt4 book ai didi

android - ListView 在 onCreate 中两次添加项目

转载 作者:行者123 更新时间:2023-11-30 03:32:23 25 4
gpt4 key购买 nike

在我的 MasterDetail Flow 中,我调用这个函数来创建我的列表:

public class Ansicht extends SherlockFragmentActivity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
//...
ListItems.setupMainItems(this);
//...
}
}

public class ListItems
{
public static List<DetailListItem> ITEMS = new ArrayList<DetailListItem>();
public static Map<String, DetailListItem> ITEM_MAP = new HashMap<String, DetailListItem>();

public static void addItem(String value, Typ t)
{
DetailListItem item = new DetailListItem(value, t);

ITEMS.add(item);
ITEM_MAP.put(item.id, item);
}

//...
}

public class ListControl extends SherlockListFragment
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
adapter = new ArrayAdapter<ListItems.DetailListItem>(getSherlockActivity(), R.layout.simple_listitem, android.R.id.text1,ListItems.ITEMS);

setListAdapter(adapter);
}

//...
}

但如果我关闭我的应用程序并再次启动它,则会再次插入这些项目。我想我不必在 onCreate 中调用这个函数,但是这个 image并没有真正帮助我,因为 onCreate 是第一个被调用的方法。

在我的 setupMainItems 方法中,我只调用了 addItem 方法。 onPauseonResume 永远不会被覆盖。如果我使用主页按钮关闭我的应用程序,一切都很好,但如果我使用后退按钮关闭它,则会再次插入项目。

最佳答案

你可以做类似的事情

if(ListItems.ITEMS == null || ListItems.ITEMS.size() == 0)
ListItems.setupMainItems(this);

这样它只会添加尚未添加的项目

关于android - ListView 在 onCreate 中两次添加项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17230873/

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