Fragments を使用して連絡先リスト アプリを作成しています。1 つのフラグは連絡先リスト内の名前のリストであり、もう 1 つのフラグは残りの詳細です。
名前のリストを表示するクラスは次のとおりです。
public class MyListFragment extends ListFragment {
private ContactStorage contactStorage = new ContactStorage();
public final static String TAG = "FRAGMENTS";
private MainActivity parent;
ArrayAdapter<String> adapter;
ArrayList<String> entries = new ArrayList<String>();
String array[];
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.list_layout, null);
parent = (MainActivity) getActivity();
entries = contactStorage.getContactListNames();
adapter = new ArrayAdapter<String>(getActivity().getApplicationContext(),
android.R.layout.simple_list_item_1, entries);
setListAdapter(adapter);
Log.d(TAG, "Adapter created");
array = contactStorage.getContactDetails();
return v;
}
@Override
public void onResume() {
super.onResume();
entries = contactStorage.getContactListNames();
adapter.notifyDataSetChanged();
Log.d(TAG, "List Frag Resumed");
}
}
私が抱えている問題は、再開時に ArrayAdapter が更新されないことです。
画面が回転すると、onCreateView() が再度実行されるので問題ありませんが、onResume を更新する必要があります。このサイトの読み込みを調べたところ、機能しない「notifyDataSetChanged() を使用」しか見つかりませんでした。