Skip to content

Instantly share code, notes, and snippets.

@daichan4649
Created December 17, 2012 16:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save daichan4649/4319557 to your computer and use it in GitHub Desktop.
Save daichan4649/4319557 to your computer and use it in GitHub Desktop.
fragment replace (for AndroidAdventCalendar2012)
public class ContactListFragment extends ListFragment {
public static ContactListFragment newInstance() {
return new ContactListFragment();
}
private ArrayAdapter<ContactData> adapter;
private DataAccessor accessor;
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
accessor = (DataAccessor) getActivity();
// リスト表示
adapter = new ArrayAdapter<ContactData>(getActivity(), android.R.layout.simple_list_item_1);
adapter.addAll(accessor.getDataList());
setListAdapter(adapter);
// 詳細表示(2pane時のみ)
if (ScreenUtil.hasMultiPane(getActivity())) {
Fragment fragment = getFragmentManager().findFragmentByTag(FragmentType.DETAIL.getTag());
if (fragment == null) {
int selectedPosition = accessor.getSelectedPosition();
fragment = ContactDetailFragment.newInstance(selectedPosition);
}
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.container_contact_detail, fragment, FragmentType.DETAIL.getTag());
ft.commit();
}
}
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
// 選択位置保持
accessor.setSelectedPosition(position);
// 詳細表示
int replaceContainerId = 0;
if (ScreenUtil.hasMultiPane(getActivity())) {
replaceContainerId = R.id.container_contact_detail;
} else {
replaceContainerId = android.R.id.content;
}
Fragment fragment = ContactDetailFragment.newInstance(position);
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(replaceContainerId, fragment, FragmentType.DETAIL.getTag());
ft.addToBackStack(null);
ft.commit();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment