-3
popBackstackImmediate()を使用してボタンクリックで現在のフラグメントを削除し、削除するフラグメントのデータを前のフラグメントに渡したいとします。どうすればこれを達成できますか?popBackStackImmediate()を使用してフラグメントをフラグメント化し、同じアクティビティ内の別のフラグメントにデータを渡します。
popBackstackImmediate()を使用してボタンクリックで現在のフラグメントを削除し、削除するフラグメントのデータを前のフラグメントに渡したいとします。どうすればこれを達成できますか?popBackStackImmediate()を使用してフラグメントをフラグメント化し、同じアクティビティ内の別のフラグメントにデータを渡します。
フラグメントは、通常、親アクティビティのフラグメントマネージャでフラグメントトランザクションを実行すべきではありません。コード内で不必要な緊密な結合が作成されます。
あなたは、コードに次のような方法を再編成する場合は、この解決策は認識し少し容易になる:
class MyFragmentB extends Fragment {
private Callback mCallback;
public interface Callback {
void dataPassback(String somedata);
}
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
try {
mCallback = (Callback) activity;
} catch (ClassCastException e) {
throw new ClassCastException(activity.toString()
+ " must implement MyFragmentB.Callback");
}
}
...
}
class MyActivity extends Activity implements MyFragmentB.Callback {
@Override
public void dataPassback(String somedata){
// 1) pop backstack
// 2) find fragment A
MyFragmentA fragmentA;
fragmentA.setData(someData);
}
...
}
フラグメントの通信のためのグッドプラクティスはdocumentationで定義されています。
ここでpopBackstackImmediateを使用していますか?断片や活動の中で? – Jon
私はフラグメント内にあったアダプタクラスから使用しています –