タグ付けされた質問 「android-dialogfragment」

DialogFragmentは、アクティビティのウィンドウの上に浮かぶダイアログウィンドウを表示するフラグメントです。

17
ボタンがクリックされたときにダイアログが閉じないようにする方法
EditText入力用のダイアログがあります。ダイアログの[はい]ボタンをクリックすると、入力が検証されてダイアログが閉じます。ただし、入力が間違っている場合は、同じダイアログに留まりたいです。入力が何であっても、「いいえ」ボタンをクリックするとダイアログは自動的に閉じられます。これを無効にするにはどうすればよいですか?ちなみに、ダイアログのボタンには、PositiveButtonとNegativeButtonを使用しています。

6
タイトルなしでDialogFragmentを作成する方法は?
アプリに関するヘルプメッセージを表示するDialogFragmentを作成しています。それ以外はすべて正常に機能します。ウィンドウの上部にDialogFragmentを表示する黒いストライプがあり、タイトルとして予約されていると思いますが、これは使用したくないものです。 私のカスタムDialogFragmentは白い背景を使用するため、これは特に痛みを伴います。 これをよりグラフィカルな方法で示します。 これで、DialogFragmentのXMLコードは次のようになります。 <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent"> <LinearLayout android:id="@+id/holding" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/dialog_fragment_bg" > <!-- Usamos un LinearLayout para que la imagen y el texto esten bien alineados --> <LinearLayout android:id="@+id/confirmationToast" android:orientation="horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content" > <TextView android:id="@+id/confirmationToastText" android:layout_width="wrap_content" android:layout_height="fill_parent" android:text="@string/help_dialog_fragment" android:textColor="#AE0000" android:gravity="center_vertical" /> </LinearLayout> <LinearLayout android:id="@+id/confirmationButtonLL" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent" …

21
Androidでカスタムダイアログボックスを作成するにはどうすればよいですか?
以下のようなカスタムダイアログボックスを作成したい 以下のことを試しました。 AlertDialog.Builderのサブクラスを作成し、カスタムタイトルとカスタムコンテンツビューを使用してそれを使用しましたが、期待どおりの結果にはなりませんでした。 別の試みは、DialogFragmentをサブクラス化し、onCreateDialog内のダイアログをカスタマイズすることでしたが、結果は期待どおりではありませんでした。 次に、単純なDialogクラスを使用してみました。結果は期待通りではありませんでした。 3つのケースすべてで、問題は、タイトルビューを見落とすと、ダイアログのサイズが期待どおりにならないことと、タイトルビューを使用すると、コンテンツビューの周りに太い境界線が表示されることです(これは実際に見た目が悪い)。今、私は私の心の中に2つの質問があります... どうすればそれを達成できますか?私はすでに多くのことを試しましたので、直接回答していただければ幸いです。 Androidアプリでエラーまたはアラートダイアログを表示する最良の方法は何ですか? EDIT Android Developer Documentationでは、ユーザーにエラー/アラートメッセージを表示するためにDialogFragmentsまたはDialogsのいずれかを使用することをお勧めしています。しかし、ある時点で彼らは言う... ヒント:カスタムダイアログが必要な場合は、ダイアログAPIを使用する代わりに、アクティビティをダイアログとして表示できます。アクティビティを作成し、そのテーマをmanifest要素のTheme.Holo.Dialogに設定するだけです。 その意味は何ですか?エラーメッセージを表示するためだけにアクティビティを使用するのは多すぎませんか?


26
DialogFragmentの幅と高さを設定するには?
私はDialogFragmentのレイアウトをxmlレイアウトファイルで指定し(これをと呼びましょうlayout_mydialogfragment.xml)、特にその属性layout_widthとlayout_height属性を指定します(100dpそれぞれ言いましょう)。次に、このレイアウトをDialogFragmentのonCreateView(...)メソッドで次のように膨らませます。 View view = inflater.inflate(R.layout.layout_mydialogfragment, container, false); 残念ながら、私は私のダイアログ(DialogFragment)が表示されたら、それは尊重していないことが判明layout_widthし、layout_heightそのXMLレイアウトファイルで指定された(と私の対話収縮または可変含有量に応じて膨張します)。私は尊重する私のダイアログを得ることができるかどうか、またはどのように誰もが知っているlayout_widthと、layout_heightそのXMLレイアウトファイルで指定されましたか?現時点では、DialogFragmentのonResume()メソッドでダイアログの幅と高さを次のように指定する必要があります... getDialog().getWindow().setLayout(width, height); ...したがって、望ましくないことに、ダイアログの幅と高さを2か所で将来変更することを忘れないでください。

27
Androidの全画面DialogFragment
ほとんど全画面のDialogFragmentを表示しようとしています。しかし、どういうわけかできません。 私がフラグメントを表示している方法は、Android開発者のドキュメントから直接です FragmentManager f = ((Activity)getContext()).getFragmentManager(); FragmentTransaction ft = f.beginTransaction(); Fragment prev = f.findFragmentByTag("dialog"); if (prev != null) { ft.remove(prev); } ft.addToBackStack(null); // Create and show the dialog. DialogFragment newFragment = new DetailsDialogFragment(); newFragment.show(ft, "dialog"); フラグメントのRelativeLayoutをfill_parentといくつかのminWidthとminHeightに単純に設定しようとしたことは知っています。 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:minWidth="1000px" android:minHeight="600px" android:background="#ff0000"> DialogFragmentが画面の大部分を占めることを期待しています。しかし、私は垂直方向にのみサイズ変更するようですが、水平方向に一定の幅になるまでのみです。 ここで提案されているように、コードでもウィンドウ属性を設定しようとしました:http : //groups.google.com/group/android-developers/browse_thread/thread/f0bb813f643604ec。しかし、これも助けにはなりませんでした。 私はAndroidがDialogsをどのように処理するかについて何かを誤解しています。どうすればこのようなことができますか?私の目標を達成するための代替方法はありますか? Androidデバイス: Asus …

5
DialogFragmentのタイトルを設定する方法は?
これは簡単なタスクですが、何らかの理由でDialogFragmentのタイトルを設定する方法を見つけることができます。(私はonCreateViewオーバーロードを使用してダイアログの内容を設定しています)。 デフォルトのスタイルはタイトルの場所を残しますが、DialogFragmentクラスにそれを設定するメソッドが見つかりません。 onCreateDialogメソッドを使用してコンテンツを設定すると、タイトルがどういうわけか魔法のように設定されるので、これは設計によるのか、またはonCreateViewオーバーロードを使用するときに設定する特別なトリックがあるのか​​と思います。

13
DialogFragmentからフラグメントへのコールバック
質問:DialogFragmentから別のFragmentへのコールバックをどのように作成しますか?私の場合、関係するアクティビティはDialogFragmentを完全に認識していないはずです。 私が持っていると考えて public class MyFragment extends Fragment implements OnClickListener その後、いくつかの点で私はできません DialogFragment dialogFrag = MyDialogFragment.newInstance(this); dialogFrag.show(getFragmentManager, null); MyDialogFragmentは次のようになります protected OnClickListener listener; public static DialogFragment newInstance(OnClickListener listener) { DialogFragment fragment = new DialogFragment(); fragment.listener = listener; return fragment; } ただし、DialogFragmentがそのライフサイクルを通じて一時停止および再開した場合にリスナーが存在するという保証はありません。フラグメントの唯一の保証は、setArgumentsとgetArgumentsを介してバンドルを介して渡されたものです。 リスナーである必要がある場合、アクティビティを参照する方法があります。 public Dialog onCreateDialog(Bundle bundle) { OnClickListener listener = (OnClickListener) getActivity(); .... …

11
DialogFragmentを正しく閉じる方法は?
ドキュメントdismiss()はDialogクラスのメソッドに対してこれを言っています: このダイアログを閉じて、画面から削除します。このメソッドは、任意のスレッドから安全に呼び出すことができます。ダイアログが閉じられたときにクリーンアップを行うためにこのメソッドをオーバーライドしないでくださいonStop()。代わりにそれをに実装してください。 私のコードでは、私がgetDialog().dismiss()することはそれを却下するための呼び出しです。しかし、私は他に何もしていませんonStop()。したがってDialogFragment、メモリリークなどを回避するために、を正しく閉じる方法を正確に尋ねています。

7
フラグメントからダイアログを表示しますか?
通常のダイアログを表示する必要があるいくつかのフラグメントがあります。これらのダイアログで、ユーザーは「はい/いいえ」の回答を選択でき、フラグメントはそれに応じて動作するはずです。 さて、FragmentクラスにはonCreateDialog()オーバーライドするメソッドがないので、ダイアログを外側のコンテナに実装する必要があると思いますActivity。それは問題ありませんが、その場合Activity、選択された回答を何らかの形でフラグメントに報告する必要があります。もちろん、ここでコールバックパターンを使用することもできるので、フラグメントはそれ自体をActivityリスナクラスに登録し、アクティビティはそれを介して、またはそのようなもので答えを報告します。 しかし、これは、「単純な」はい/いいえのダイアログをフラグメントで表示するため、単純なタスクではかなり大きな混乱のようです。また、この方法では、Fragment自己完結性が低くなります。 これを行うためのより明確な方法はありますか? 編集: この質問への答えは、フラグメントからのダイアログを表示するためにDialogFragmentsをどのように使用する必要があるかを詳細に説明していません。だから私の知る限り、行く方法は: フラグメントを表示します。 必要に応じて、DialogFragmentをインスタンス化します。 を使用して、このDialogFragmentのターゲットとして元のFragmentを設定し.setTargetFragment()ます。 元のフラグメントの.show()でDialogFragmentを表示します。 ユーザーがこのDialogFragmentでいくつかのオプションを選択し、この選択について元のFragmentに通知すると(たとえば、ユーザーが「はい」をクリックした場合)、. getTarget()を使用して元のFragmentの参照を取得できます。 DialogFragmentを閉じます。

6
DialogFragmentに引数を渡す
いくつかの変数をに渡してDialogFragment、アクションを実行できるようにする必要があります。Eclipseは私が使うべきだと示唆しています Fragment#setArguments(Bundle) しかし、この関数の使い方がわかりません。変数をダイアログに渡すにはどうすればよいですか?

4
DialogFragment setCancelableプロパティが機能しない
私はAndroidアプリケーションで作業しており、DialogFragmentを使用してダイアログを表示しています。そのDialogFragmentをキャンセルできないようにしたいと考えています。ダイアログのキャンセル可能なプロパティをfalseにしましたが、まだ影響はありません。 私のコードを調べて、解決策を提案してください。 public class DialogTest extends DialogFragment { @Override public Dialog onCreateDialog(Bundle savedInstanceState) { return super.onCreateDialog(savedInstanceState); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.dialog_test, container, true); getDialog().requestWindowFeature(STYLE_NO_TITLE); getDialog().setCancelable(false); return view; } }

16
スナックバーの背景色を変更するには?
alertDialogのポジティブクリック内のDialogFragmentにスナックバーを表示しています。これが私のコードスニペットです。 Snackbar snackbar = Snackbar.make(view, "Please enter customer name", Snackbar.LENGTH_LONG) .setAction("Action", null); View sbView = snackbar.getView(); sbView.setBackgroundColor(Color.BLACK); snackbar.show(); ダイアログフラグメントのビューをスナックバーに渡します。背景色を黒にしたいですか?これどうやってするの?DialogFragmentでalertDialogを返しています。そして、私がダイアログに設定しているテーマは次のとおりです <style name="MyAlertDialogStyle" parent="Theme.AppCompat.Light.Dialog.Alert"> <!-- Used for the buttons --> <item name="colorAccent">@color/accent</item> <!-- Used for the title and text --> <item name="android:textColorPrimary">@color/primary</item> <!-- Used for the background --> <item name="android:background">@color/white</item> </style> ダイアログの背景色を白に設定していますが、背景色をスナックバーに設定することで上書きする必要があります。

10
カスタムDialogFragmentをFragment上で透明にすることはできません
(画面全体を占める)フラグメント上にダイアログを作成する必要があります。ダイアログは、フラグメントがフラグメントの外側で暗くなった状態でフラ​​グメントの上に配置されるフローティングダイアログである必要があります。 カスタムダイアログの場合、カーブしたエッジを持つlinearLayoutがあります。何をしても、ダイアログにはすべての側面に黒い境界線があります(非常に小さい)。私はそれを透明にし、消えるようにあらゆることを試みました(そのため、ダイアログのすべてが単なる直線レイアウト-曲線ボックスになるように) DialogFragmentの場合、これはonCreateViewに必要なものです @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){ LinearLayout layout =(LinearLayout)inflater.inflate(R.layout.custom_dialog, null); LinearLayout item = (LinearLayout)layout.findViewById(R.id.display_item); populateItemData(item, inflater); return layout; } custom_dialogは、android:backgroungが#000000に設定された単なるLinearLayoutです これはカスタムダイアログの私のスタイルです <style name="CustomDialog" parent="android:style/Theme.Dialog"> <item name="android:windowBackground">@null</item> <item name="android:windowNoTitle">true</item> <item name="android:windowIsFloating">true</item> <item name="android:windowIsTranslucent">true</item> <item name="android:alwaysDrawnWithCache">false</item> <item name="android:windowContentOverlay">@null</item> </style> (オンラインで見たものから)このスタイルであらゆる種類の組み合わせを試しましたが、迷惑な黒い境界線を取り除くことができません.LinearLayoutの背景を以外の値に設定すると、白または他の色にペイントできます#000000 ... 私はこれに文字通り3〜4時間費やしました。他の誰かが手伝ってくれることを願っています...

17
DialogFragmentの幅をFill_Parentにする方法
私はDialogFragmentダイアログを表示するために使用しているAndroidアプリケーションに取り組んでいますが、その幅は非常に小さいです。どのようにしてこの幅fill_parentをそれに合わせることができますか? public class AddNoteDialogFragment extends DialogFragment { public AddNoteDialogFragment() { // Empty constructor required for DialogFragment } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { getDialog().setTitle(getString(R.string.app_name)); View view = inflater.inflate(R.layout.fragment_add_note_dialog, container); return view; } @Override public Dialog onCreateDialog(Bundle savedInstanceState) { Dialog dialog = super.onCreateDialog(savedInstanceState); // request a window …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.