Activityは別のActivityのFragmentに値を伝えます

1220 ワード

最近のプロジェクトでは、トップページの1つのFragmentから別のActivityにジャンプして値を取り、その値をこのFragmentに持ち帰るというニーズがあります.ネット上で多くの資料を調べたところ、多くの脆弱性が発見されました.使用場所が少ないので、EventBusを考慮していませんでした.その後、ブロガーは試みを通じて、このニーズを実現することに成功しました.実は簡単です.本文は以下の通りです.
1.まずFragmentで別のActivityの論理に移行することは、一般的にgetActivity()であるため、このステップも重要である.startActivityForResult(new Intent(getActivity(),CalendarActivity.class),1);これにより最終結果が受信できなくなるため、Fragment自身のジャンプメソッドstartActivity ForResult(new Intent(getActivity()CalendarActivity.)を呼び出す必要がある.class),1);
2.他のActivityで返送するデータをパッケージする
Intent intent = new Intent(CalendarActivity.this,MainActivity_.class);
Bundle bundle = new Bundle();
bundle.putString("date", mTextMonthDay.getText().toString());
intent.putExtras(bundle);
setResult(1,intent);
finish();

3.このFragmentで書き換える方法
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    // TODO Auto-generated method stub
    super.onActivityResult(requestCode, resultCode, data);
    Bundle bundle = data.getExtras();
    String namString = bundle.getString("date");
   
}

4.複数のFragmentの値を取らないため、ブロガーはcodeで判断することなく、ActivityからFragmentへのデータ伝達を容易に実現できる