Androidの2つのFragment間のジャンプとデータの伝達例の詳細

2000 ワード

Androidの2つのFragment間のジャンプとデータの伝達例の詳細
Androidの菜鳥として、先日プロジェクトをしていたときにfragmentを使いました.需要は1つのFragmentから別のFragmentにジャンプし、Activityのジャンプのようにデータを伝えます.ネットで久しぶりに良い列を探して、最后に他の人のブログを见てドキュメントを调べてやっとできました.今整理して、必要な子供靴を助けてほしいです.
1、まず最初のFragmentでFragmentMangerとFragmentTransactionコードを入手します.

  @Override
  public void onCreate(Bundle savedInstanceState) {
  // TODO Auto-generated method stub
  super.onCreate(savedInstanceState);
  fm = getFragmentManager();

  }


2転送するデータのジャンプを準備します.

 deptListView.setOnItemClickListener(new OnItemClickListener() {

@Override
public void onItemClick(AdapterView> arg0, View arg1, int postion,
long arg3) {
ft = fm.beginTransaction();//  。  transaction   commit  ,           
long id = adapter.getDepartments().get(postion).getId();
String name = adapter.getDepartments().get(postion).getName();
DeptDocFragment df = new DeptDocFragment();
Bundle bundle = new Bundle();
bundle.putLong("id", id);
bundle.putString("name", name);
df.setArguments(bundle);
ft.replace(R.id.guide_content, df);
ft.addToBackStack(null);
ft.commit();
}
});


上のDeptDocFragmentは私がジャンプするFragmentで、伝達データはActivityと同じようにBundleで、最後にdfを通過します.setArguments(bundle);データを携帯する.ReplaceメソッドでFragmentを切り替えてジャンプを実現し、最後にcommitコミットを忘れないでください.
3次は別のFragmentで最初のFragmentから渡されたデータを取得します.

@Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
Bundle bundle = getArguments();
deptId = bundle.getLong("id");
deptName = bundle.getString("name");
}

FragmentのonCreate()メソッドでデータを取得します.そしてこのFragmentで必要な論理を完成します.さあ、Fragment全体のジャンプは完成しました.
もし疑問があれば伝言を残してあるいは当駅のコミュニティに行って討論を交流して、読書に感謝して、みんなを助けることができることを望んで、みんなの当駅に対する支持に感謝します!