私は3つのフラグメントを持っています。フラグメントA、B、C。「続ける」ボタンがあり、Bに進む。「進む」ボタンをクリックすると、Cに進むことができる。「追加」ボタンがあり、Bに戻る。続行ボタンが押されたときにAからBへデータを送信したい。追加ボタンが押されたときにはCからBに変更されます。バンドルを使ってみました。 AからBへ行くときに初めてnullポインタ例外を与えているので、Cからのバンドルはnullです。これを解決するには?どんな助けも高く評価されます。以下のコードスニペットをご覧ください3つのフラグメント間の通信
注:ItemDetailsはフラグメントAから取得され、EmployeeDetailsはフラグメントCから取得されます。フラグメントフロー=> 1.フラグメントA 2. AからB(アイテムリストはBに渡されます)3. BからC(通信なし)4. CからBに戻る(Bに渡された従業員リスト)。
String TEMP_STRING_EMPLOYEES, TEMP_STRING_ITEMS;
EmployeeList employeeList;
ItemsList itemsList;
@Override
public void onStart() {
super.onStart();
Bundle args = getArguments();
if (args != null) {
TEMP_STRING_ITEMS = args.getString("ItemsDetails");
try {
// Set article based on argument passed in
TEMP_STRING_EMPLOYEES = args.getString("EmployeeDetails");
} catch (NullPointerException ex) {
}
} else {
}
}
//Next lines of code from MAinActivity.java
@Override ます。public void onFragmentInteractionForEmployeeDetails(ArrayListのArrayListを){
EmployeeList employeeList = new EmployeeList(arrayList);
String correspondingJson = NavigationUtils.getStringForObject(employeeList);
B newFragment = new B();
Bundle args = new Bundle();
args.putString("EmployeeDetails", correspondingJson);
newFragment.setArguments(args);
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
// Replace whatever is in the fragment_container view with this fragment,
// and add the transaction to the back stack so the user can navigate back
transaction.replace(R.id.fragment_container, newFragment);
transaction.addToBackStack(null);
transaction.commit();
}
[this](https://stackoverflow.com/a/44008851/6950238)を見てください –
あなたはあなたのバンドルコードを送ったり、送ったりすることができますか? –
フラグメント間の通信には、[アクティビティを介して回覧する](https://developer.android.com/training/basics/fragments/communicating.html)または[この回答](https://stackoverflow.com/)に従うことができます。 a/36496481/1276636) – Sufian