私は既に開いているダイアログのフラグメントをクリックしてダイアログのフラグメントを開くことができます。元のままにしておき、新しいものを開いたままにするか、オリジナルを非表示にしてから、2番目のダイアログフラグメントが解除されたときに再び開きます。私がそれをやろうとする前にこれが実現可能かどうか疑問に思って、おそらく私の時間を無駄にするでしょう。誰も助言することはできますか?アンドロイドのダイアログフラグメントからダイアログフラグメントを起動することは可能ですか
0
A
答えて
0
上記のコメントに続き、次のコードが動作するようになりました(ロジックはまだ実装されていませんが、テスト用ハンドセットでコンパイルされて実行されます)。上記のonAttachメソッドを次のコードに置き換えました。
@Override
public void onAttach(Context context) {
super.onAttach(context);
TextPropertiesDialogFragment prev = (TextPropertiesDialogFragment) getFragmentManager().findFragmentByTag("TextPropertiesDialogFragment");
if (prev != null) {
if (prev instanceof OnColourPickerFragmentInteractionListener) {
mListener = (OnColourPickerFragmentInteractionListener) prev;
} else {
throw new RuntimeException(prev.toString()
+ " must implement OnFragmentInteractionListener");
}
}
}
このonAttachメソッドは、OnColourPickerDialogFragmentという2番目のダイアログフラグメントにあります。 TextPropertiesDialogFragmentは、アクティビティから呼び出される最初のダイアログフラグメントです。完成のために、以下にリスナーとインターフェイスの定義を含めました。
public class TextPropertiesDialogFragment extends DialogFragment implements View.OnClickListener, ColourPickerDialogFragment.OnColourPickerFragmentInteractionListener{
public void colourPickerCallBackMethod(Bundle bundle){
//Do some work here
}
//........
}
public class ColourPickerDialogFragment extends DialogFragment implements View.OnClickListener {
private View topLevelFragmentView;
private OnColourPickerFragmentInteractionListener mListener;
private Bundle callBackBundle;
public interface OnColourPickerFragmentInteractionListener{
void colourPickerCallBackMethod(Bundle callBackBundle);
}
//......
}
関連する問題
- 1. アンドロイド4 - ダイアログフラグメント - NullPointer例外
- 2. ダイアログフラグメントは
- 3. ダイアログフラグメントから文字列を返す
- 4. 配列リストデータを1つのダイアログフラグメントから別のダイアログフラグメントに渡す方法はありますか?
- 5. Android ShowアクティビティのSharedElementからのダイアログフラグメント
- 6. ダイアログフラグメントの結果をダイアログフラグメントに受け取る方法
- 7. xamarinの空のダイアログフラグメント
- 8. アクティビティデータ転送のダイアログフラグメント
- 9. Android - ダイアログフラグメントの解除
- 10. ClassCastException RecyclerViewからダイアログフラグメントを呼び出すとき
- 11. ビューページャフラグメントおよびダイアログフラグメント
- 12. プロジェクトでダイアログフラグメントを追加する方法
- 13. Androidはフラグメントからダイアログフラグメントにデータを渡します
- 14. PreferenceからPreferenceからDialogFragmentを起動することは可能ですか?
- 15. ダイアログフラグメントにフラグメントを追加する
- 16. バンドルを使用してフラグメントからダイアログフラグメントへの引き継ぎ
- 17. TestNGテストケースをExcelから起動することは可能ですか?
- 18. URLからjqueryuiダイアログを起動することは可能ですか?
- 19. Officeアドイン(C#)からコンソールアプリケーションを起動することは可能ですか?
- 20. capistranoタスクからvimを起動することは可能ですか?
- 21. ダイアログフラグメントにデータを渡す方法
- 22. なぜソフトキーボードがダイアログフラグメント内のウェブビュー内で動作しないのですか?
- 23. フラグメントからダイアログフラグメントに渡すときにAndroidが値nullを取得
- 24. 他のフラグメントのダイアログフラグメントを開くと、キャストエラーが発生する
- 25. コードからアプリケーションを再起動/リセットすることは可能です
- 26. アクティビティから、ダイアログフラグメントを拡張するカスタムダイアログにデータを送る方法
- 27. ダイアログフラグメントから変数を取得し、それを呼び出すアクティビティに戻る
- 28. 2つのダイアログフラグメント間の通信Android
- 29. TextViewを表示するときにダイアログフラグメント(カスタムレイアウト)が機能しない
- 30. なぜ2つのダイアログフラグメントが表示されますか?
他の誰かがこれを試している場合は、アクティビティからダイアログフラグメントを呼び出すよりも複雑ではないようです。私が遭遇した問題は、ダイアログの断片のonAttachメソッドに関連していました。この時点でのコンテキストは、元の呼び出しアクティビティに関連しており、ダイアログフラグメントではありませんでした。これは、アクティビティが最初のダイアログフラグメントの代わりにインターフェイスを実装する必要があることを意味します。まだこれが論理を破るかどうかはわかりません。私がこれを理解すると、もう少し投稿して、うまくいけば誰かに役立つだろう。 –
このコードは、エラーがスローされる場所であり、最初のアクティビティが2番目のダイアログフラグメントのインターフェイスを実装する必要があると参照されています。 'code' @Override public void onAttach(コンテキストコンテキスト){ super.onAttach(コンテキスト); if(context instanceof OnColourPickerFragmentInteractionListener){ mListener =(OnColourPickerFragmentInteractionListener)コンテキスト; } else { 新しいRuntimeExceptionをスローする(context.toString() + "OnFragmentInteractionListenerを実装する必要があります"); } } 'code' –