Created
December 17, 2012 16:20
-
-
Save daichan4649/4319557 to your computer and use it in GitHub Desktop.
fragment replace (for AndroidAdventCalendar2012)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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