問題タブ [android-dialogfragment]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
21 に答える
322031 参照

android - ボタンがクリックされたときにダイアログが閉じないようにする方法

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

0 投票する
6 に答える
60704 参照

android - DialogFragment のタイトルを設定するには?

これは単純な作業のはずですが、何らかの理由でDialogFragmentのタイトルを設定する方法を見つけることができます。(オーバーロードを使用してダイアログの内容を設定していますonCreateView)。

DialogFragmentデフォルトのスタイルはタイトルの場所を残していますが、それを設定するためのメソッドがクラスに見つかりません。

メソッドを使って内容を設定するとなぜかタイトルが魔法のように設定されるonCreateDialogので、これは仕様なのか、onCreateViewオーバーロードで設定する特殊な仕掛けがあるのだろうか。

0 投票する
7 に答える
138672 参照

android - フラグメントからダイアログを表示しますか?

通常のダイアログを表示する必要があるフラグメントがいくつかあります。これらのダイアログで、ユーザーははい/いいえの回答を選択でき、フラグメントはそれに応じて動作する必要があります。

現在、FragmentクラスにはonCreateDialog()オーバーライドするメソッドがないため、ダイアログを外側の .xml に実装する必要があると思いますActivity。それは問題ありませんActivityが、選択した回答を何らかの方法でフラグメントに報告する必要があります。もちろん、ここでコールバック パターンを使用することもできます。そのため、フラグメントは自身をActivityリスナー クラスに登録し、アクティビティはそれを介して応答を返すか、またはそのようなものになります。

しかし、これは、フラグメントに「単純な」はい/いいえダイアログを表示するという単純なタスクにとっては、かなり混乱しているようです。また、この方法でFragmentは自己完結型ではなくなります。

これを行うためのよりクリーンな方法はありますか?

編集:

この質問に対する答えは、DialogFragments を使用して Fragments からダイアログを表示する方法を詳しく説明していません。知る限り、行く方法は次のとおりです。

  1. フラグメントを表示します。
  2. 必要に応じて、DialogFragment をインスタンス化します。
  3. を使用して、元の Fragment をこの DialogFragment のターゲットとして設定し.setTargetFragment()ます。
  4. 元の Fragment から .show() を使用して DialogFragment を表示します。
  5. ユーザーがこの DialogFragment で何らかのオプションを選択すると、この選択について元の Fragment に通知されます (たとえば、ユーザーが「はい」をクリックした場合)。元の Fragment の参照を .getTarget() で取得できます。
  6. DialogFragment を破棄します。
0 投票する
2 に答える
35804 参照

android - Android カスタム ダイアログを閉じる

ボタンを押したときにカスタムダイアログを閉じようとしています

dialog.dismiss が機能しません。このカスタム ダイアログをヘルプ画面として使用しようとしているだけで、ボタンを押して閉じたいと思っています。

私はAndroid開発に非常に慣れていませんが、これを何時間も試してきました

アドバイスをありがとう

0 投票する
31 に答える
188667 参照

android - Android のフルスクリーン DialogFragment

ほぼフルスクリーンの DialogFragment を表示しようとしています。しかし、私はどういうわけかそうすることができません。

私がフラグメントを表示している方法は、アンドロイド開発者のドキュメントから直接です

フラグメントの RelativeLayout を fill_parent といくつかの minWidth と minHeight に単純に設定しようとしたことはわかっています。

DialogFragment が画面の大部分を占めることを期待しています。しかし、私は垂直方向にのみサイズを変更するようですが、水平方向に一定の幅までしかサイズを変更しません。

ここで提案されているように、コードでウィンドウ属性を設定しようとしました: http://groups.google.com/group/android-developers/browse_thread/thread/f0bb813f643604ec。しかし、これも役に立ちませんでした。

Android がダイアログを処理する方法について、私はまったく新しいので、おそらく誤解しています。どうすればこのようなことができますか?私の目標を達成するための別の方法はありますか?


Android デバイス:
Asus EeePad Transformer
Android 3.0.1


更新: フラグメントに次のコードを使用して、全画面表示にすることができました

残念ながら、これは私が望むものではありません。背景を表示するには、ダイアログの周りに小さな「パディング」が必要です。

それを達成する方法はありますか?

0 投票する
1 に答える
2517 参照

android - PreferenceActivity の Preference から DialogFragment を起動することは可能ですか?

v4 互換パッケージとフラグメントを使用するようにアプリを変換しています。これまでのところうまくいきましたが、 の設定をクリックしてDialogFragmentを起動する必要がありますPreferenceActivity。互換性ライブラリには PreferenceFragment がないため、PreferenceActivity. フラグメント マネージャへの参照を取得して を呼び出すことは可能DialogFragmentですか? または、設定からダイアログが必要な場合は、古いダイアログを引き続き使用する必要がありますか?

0 投票する
2 に答える
7702 参照

android - ダイアログフラグメントのカスタムダイアログの高さを変更

カスタム ダイアログを作成しました。コードは以下のとおりです。問題は、ダイアログの高さがwrap_contentになっていることです。つまり、xmlで言及した高さとは無関係です。他の質問を確認しましたが、役に立ちません。

fragment_points_dialog.xml の xml は

このようなダイアログを表示しています..

ダイアログフラグメントでダイアログの高さを変更する方法を知りたいです。

0 投票する
10 に答える
160812 参照

android - Android DialogFragment vs Dialog

Googleでは、を使用しDialogFragmentて単純なものではなくDialog使用することをお勧めしますが、単純な[はい]-[いいえ]の確認メッセージボックスをFragments API分離して使用するのはばかげています。DialogFragmentこの場合のベストプラクティスは何ですか?

0 投票する
1 に答える
2070 参照

android - DialogFragment-Chain のようなウィザード

Android デベロッパーの皆さん、こんにちは。

私は 2 つの DialogFragments を連続させようとしているので、最初のものがキャンセルされると 2 番目のものがポップアップします。

これが私がこれまでに持っているものです:

私のアクティビティでは、次のメソッドを呼び出します。

私の DialogFragment には、キャンセルされることを検出する次のコードがあります。

アクティビティに戻り、2 番目のダイアログを開始して、そのイベントに対応します。

最初のダイアログで向きを変更しない限り、これは完全に機能します。私が持っていると、次のエラーが表示されます。

java.lang.IllegalStateException: onSaveInstanceState の後にこのアクションを実行できません

この例外は、「newFragment.show(getSupportFragmentManager(), "mySecondDialogTag");」という行で発生します。

この問題を解決する方法を考えたのは、最初のダイアログを手動で閉じることです。私は次のことを試しました:

ここでも、向きを変更することなく、すべてが正常に機能しています。最初のダイアログが画面に表示されているときに方向を変更すると、「firstFragment.dismiss()」行で NullPointerException が発生します。

なぜそれが起こっているのですか?FragmentManager が向きを変更した後に DialogFragment を忘れてしまうのはなぜですか。Androidリファレンスは次のように述べています。

show(FragmentManager, String) または show(FragmentTransaction, String) を使用して DialogFragment のインスタンスを UI に追加する必要があります。これらは、ダイアログが閉じられたときに DialogFragment が自身を削除する方法を追跡するためです。

私は show を使用していますが、まだ正しく動作していません。

どんなヒントでも大歓迎です!

乾杯 Ali3n

0 投票する
10 に答える
62509 参照

android - フラグメント上でカスタム DialogFragment を透明にすることはできません

フラグメント (画面全体を占める) に対してダイアログを作成する必要があります。ダイアログは、フラグメントの上に配置されるフローティング ダイアログである必要があり、フラグメントはフラグメントの外側で暗くなります。

カスタムダイアログの場合、エッジが湾曲しているlinearLayoutがあります。何をしても、ダイアログのすべての側面に黒い境界線があります(非常に小さい)。私はそれを透明にして消えるようにすべてを試しました(そのため、すべてのダイアログは線形レイアウト-曲線ボックスになります)

DialogFragment の場合、これは onCreateView 用に持っているものです

custom_dialog は、android:backgroung が #000000 に設定された LinearLayout です。

これは、カスタム ダイアログの私のスタイルです

私はこのスタイルであらゆる種類の組み合わせを試しました (私がオンラインで見たものから)、その厄介な黒い境界線を取り除くことはできません. #000000...

私はこれに文字通り3〜4時間費やしました。他の誰かが助けてくれることを願っています...