私の MasterDetail フローでは、この関数を呼び出してリストを作成します。
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 でこの関数を呼び出す必要はないと思いますが、onCreate が呼び出される最初のメソッドであるため、このイメージはあまり役に立ちません。
私のsetupMainItems
メソッドでは、addItem メソッドのみを呼び出します。onPause
とonResume
がオーバーライドされることはありません。ホームボタンでアプリを閉じるとすべてうまくいきますが、戻るボタンでアプリを閉じるとアイテムが2回挿入されます。