fragmentからlistFragmentを使って一旦リストを表示して、クリックされたらクリックされたアイテムのデータを返してから元の画面に戻るのを実装しようとしているのですが、
これはlistFragment内のonListItemClickからもう一回前のフラグメントをfragmentManager#findFragmentbyId()によって見つけてreplaceするかコールバックを作るしかないのでしょうか?
それ以外の方法が思いつきません。
FragmentTransaction transaction = getActivity().getSupportFragmentManager() .beginTransaction(); transaction.replace(R.id.fragment_container,collegeListFragment, "college"); transaction.addToBackStack(null); transaction.commit();
これをしたあと
public class CollegeListFragment extends ListFragment { private String collegeName; private int collegeId; public static CollegeListFragment newInstance(){ CollegeListFragment fragment = new CollegeListFragment(); return fragment; } public CollegeListFragment(){} public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); ArrayList<College> collegeList = Connect.collegeList(getFragmentManager()); CollegeListAdapter adapter = new CollegeListAdapter(getActivity(),collegeList); setListAdapter(adapter); } public void onListItemClick(ListView l, View v, int position, long id) { super.onListItemClick(l, v, position, id); College college = (College) l.getAdapter().getItem(position); //ここにデータを返す処理をする dismiss(); }
このonListItemClickのコメントを書いているタイミングでコールバックを呼び出すかtransactionするかしかないのでしょうか?
これだとDialogFragmentなどを使うときにもいちいちコールバックを定義するしかなくなってとても不便な気がしまして...
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/05/08 09:36
2016/05/08 10:05
2016/05/08 15:49
2016/05/08 17:15
2016/05/21 14:04