私は 2 つの参考資料を参照し、2 つのフラグメント間の通信を理解するために最善を尽くしました。ここの以前の質問 + 2 つの参照の助けを借りて、このコードを思いつくことができました。ユーザーが ListFragment FragA で行った選択を取得するには、FragB に何を入力する必要がありますか?
主な活動:
public class MainActivity extends Activity implements OnDataPass{
...
@Override
public void onDataPass(String data) {
// TODO Auto-generated method stub
FragA transaction1 = ((FragA) getFragmentManager().findFragmentByTag("ItemRoleList"));
transaction1.dataPasser.onDataPass(data);
}
}
FragA は次のとおりです。
public class FragA extends ListFragment{
OnDataPass dataPasser;
public interface OnDataPass{
public void onDataPass(String data);
}
@Override
public void onAttach(Activity a) {
super.onAttach(a);
// This makes sure that the container activity has implemented
// the callback interface. If not, it throws an exception
try {
dataPasser = (OnDataPass) a;
} catch (ClassCastException e) {
throw new ClassCastException(a.toString()
+ " must implement OnHeadlineSelectedListener");
}
}