問題タブ [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.
android - Android : アクティビティの再開後に DialogFragments の順序が変更される
私のアクティビティでは、2 つの DialogFragments が開いています。
Dialog1 と Dialog2 が Dialog1 の上に表示されます (両方が重なり合って表示されます)。
他のアクティビティを開き、タスク マネージャーを使用して元のアクティビティに戻ると、ダイアログの順序が変更されています。つまり、Dialog2 の上に Dialog1 が表示されます。
TaskManager からアクティビティを再開するときに、DialogFragments の順序を維持するにはどうすればよいですか??
android - DialogFragment の表示
android.support.v4.app.DialogFragment を拡張するクラス ActivityExitDialogFragment があります。ActivityExitDialogFragment には、ActivityExitDialogFragment の新しいインスタンスを取得するための onCreateDialog と newInstance の 2 つのメソッドしかありません。どうぞ:
そして、これがダイアログを表示するために使用されるメソッドです。同じパッケージ内の別のアクティビティにあります。ユーザーが終了ボタンをクリックすると呼び出されます。
終了ボタンをクリックするたびに、dialog.show 行で IllegalStateException が発生します。以前にこの問題がありましたが、プロジェクトの libs フォルダーに android-support-v4.jar ファイルがなかったことが原因でした。そのjarファイルをlibsフォルダーに入れたところ、機能しました。クラスの名前を別のものから ActivityExitDialogFragment に変更し、Eclipse で Java ファイルの名前を一致するように変更しました。それ以来、この例外が再び発生しています。名前を変更した後に再び例外が発生したのが偶然なのか、それともパブリッククラスの名前と一致するようにjarファイルの名前を変更するだけでEclipseが何か他のことをしたのかはわかりません。getInstance メソッドのアクセス修飾子を変更し、Android サポート jar ファイルの新しいコピーを削除して追加し、名前を古い名前に戻そうとしましたが、
java - DialogFragment で FragmentManager と FragmentTransaction を使用する
問題の要点は次のとおりです。 FragmentActivity から DialogFragment を起動しようとしています。この DialogFragment のビューには、Fragment を入力したい FrameLayout が含まれています。基本的に、FragmentActivity は DialogFragment を起動し、DialogFragment は FrameLayout に Fragment を設定します。私はインターネットでチュートリアルを探し回り、(私の考えでは)うまくいくはずのものをまとめました。ただし、何を試しても、継続的にエラーが発生します。これは私がこれまでに持っているものです:
これは私の FragmentActivity のレイアウトです (ファイル名は「activity_interact」です):
これは私のDialogFragmentのレイアウトです(ファイル名は「dialog_overview」です):
これは私のフラグメントのレイアウトです(ファイル名は「fragment_stats」です):
FragmentActivity の Java コードは次のとおりです。
}
これが私のDialogFragmentのコードです:
}
ここに私のフラグメントのコードがあります:
}
最後に、logcat エラーは次のとおりです。
私はフラグメントのビューを持っていないと言っていることがわかりますが、私は... (または私は?) 私はここで迷っています。また、私はこれを正しい方法で行っていますか? FragmentManager を再利用する方が効率的でしょうか? (つまり、FragmentActivity から DialogFragment に渡します)
更新: Fragment を DialogFragment にロードするコードを削除しました。現在、DialogFragment は問題なく表示されます。したがって、明らかに (logcat エラーが示唆するように) Fragment 自体に何か問題があります...ただし、インターネットで見た例と一致します。このようにネストされたフラグメントに問題はありますか? Fragment を表示する DialogFragment を表示する FragmentActivity を見て、「これ以上深くは考えられない」と言いたくなりますが、わかりません。さらにフラグメントをネストできますか?
android - DialogFragmentとFragmentManagerを使用してDatePickerを作成するにはどうすればよいですか?
ですから、私はしばらくこれに取り組んでいます、そして私はそれを理解することができないようです。私はAndroid開発にかなり慣れていないので、ご容赦ください。私はDatepickerの作成にあまり慣れていなかったので、コツをつかむためだけに非推奨の方法で作成することを学びました。このチュートリアルを使用して、私をスピードアップさせました。
http://developer.android.com/resources/tutorials/views/hello-datepicker.html
しかし、今は主に非推奨のコードを使用しないように変更する必要があるので、周りを見回して、2つのチュートリアルを見つけました。主にこれです。
http://www.kylebeal.com/2011/11/android-datepickerdialog-and-the-dialogfragment/
問題は、意味をなさないコードがあることです。主にこの部分:
それは、それが実行されているアクティビティクラスで実行されているものであると想定されます。したがって、コードの残りの部分で何が起こっているのかを把握し、おそらく役立つので、残りの部分を自由に見てください。コードは基本的に、元のコードとほぼ同じルートをたどっていshowDialog()
ます。DialogFragmentを使用するという明らかな例外を除いて、を実装DatePickerDialog.onDateSetListener
し、新しいを返します。DatePickerDialog
しかし、それは私が迷子になったところです。
その理由の一部は、新しいDatePickerDialogがどこに 返されるのかよくわからないためです。onCreateDialog()
私が言ったコードを見ると、どちらも意味mDateDetailFragment
がgetSupportFragmentManager()
なく、インスタンス化されたり、他の場所に表示されたりすることはなかったため、チュートリアルコードを機能させることさえできません。Android Docには、使用する代わりにとのshowDialog()
両方を使用する必要があるとDialogFragment
記載されてFragmentManager
いますが、これもここでは実行されません。DialogFragmentのみ。
それで、タイトルのように、どのように私は非実用的な形でDatPickerを作ることができますか?リンクに私を送らないで、ここを見てと言ってください。私はそれをしました。私を信じてください。そうでない場合は、少なくとも私が見逃したことを説明してください。これは理にかなっています。onCreateDialog()
また、メソッドがどこに送信するかを誰かが実際に教えてくれる場合はDatePickerDialog
、それも非常に役立ちます。コードをコピーして貼り付けるのではなく、これらすべてを理解しようとしています(とにかく機能するわけではありません)。これを読むために時間を割いてくれてありがとう、そして何か説明が必要な場合は、尋ねてください。
android - DialogFragmentで、onCreateは何をする必要がありますか?
私は現在、DialogFragmentをいじって、使い方を学んでいます。私は、と比較してonCreateView()
、onCreate()
これを行うことができると仮定しました:
しかし、私は間違っています。なぜ機能しないのかわからない。コメントアウトするとエラーは消えtestTextView.setText("Success!");
ますエラーはNullPointerExceptionであり、問題のあるコード行がある39行目にフラグを立てるだけです。どんな説明でも大歓迎です。
編集:
android - DialogFragment の正/負のボタンをソフト キーボードの上に保持する方法
私はDialogFragmentを使用しています。Gmail タブレット アプリケーションの画面から下の例の写真のように、ユーザーが編集テキストを操作するときに、正と負のボタンがキーボードの上に残るようにします。
うまくいかない私の試みでは、ここに私のDialog Fragments onCreateDialogメソッドがあります
ここに R.layout.my_layout があります
私の実装では、ソフト キーボードが表示され、ダイアログの正と負のボタンがカバーされます。ボタンをキーボードの上に残すには何が欠けていますか?
前もって感謝します。
android - DialogFragmentを正しく閉じる方法は?
ドキュメントは、クラスのdismiss()
メソッドについて次のように述べています。Dialog
このダイアログを閉じて、画面から削除します。このメソッドは、どのスレッドからでも安全に呼び出すことができます。ダイアログが閉じられたときにクリーンアップを行うためにこのメソッドをオーバーライドするのではなく、代わりにで実装する必要があることに注意してください
onStop()
。
私のコードでは、getDialog().dismiss()
それを却下するために呼び出すだけです。しかし、私は他に何もしていませんし、も使用していませんonStop()
。DialogFragment
そのため、メモリリークなどを回避するために、を正しく閉じる方法を正確に尋ねています。
android - v4 サポート ライブラリは、利用可能な場合に新しいクラスを使用しますか?
v4 サポート ライブラリを使用して、Fragments などの最近のバージョンで導入されたものを古い Android バージョンに実装できることはわかっています。たとえば、 v4 サポート ライブラリを使用してDialog Fragmentsを表示するアプリを実装すると、 ICS で実行するときに最新のコード (つまり、元のフラグメントと新しいフラグメント) を使用しますか?それともすべての Android バージョンのサポート コードを引き続き使用しますか?
同じアプリでandroid.app.Fragment
クラスとクラスの両方を使用して、Android のFragment 対応リリースで実行している場合、またはv4 サポート ライブラリをインポートするときにサポート クラスのみを使用する必要があるandroid.support.v4.app.Fragment
場合に、実行時に区別する方法はありますか?
たぶん私が間違っているかもしれませんが、最近のプラットフォームで実行するときに最新のコードを使用しないのは良い考えではないようです..
ダイアログフラグメントのケースに固執して、何が良いと思いますか:
1) v4 サポート ライブラリを使用します。つまり、すべての Android バージョンで互換コードを使用します。
2)android.app.DialogFragment
API レベル 11 以上で実行する場合は new を使用し、 API レベル 11 未満で実行する場合は非推奨のクラスshowDialog
のonCreateDialog
メソッドを使用します。Activity
私がすでに言ったように、私見の最善の方法は次のとおりですが、(間違っている場合は修正してください)それは可能な解決策ではありません:
3)android.app.DialogFragment
API レベル 11 以上で実行する場合は新しいクラスを使用し、 API レベル 11android.support.v4.app.DialogFragment
未満で実行する場合はクラスを使用します。
少し混乱させて申し訳ありませんが、質問が非常に明確であることを願っています..
android-layout - Android フラグメントの Admob
AdMob を ActionBarSherlock Fragment に配置できません。アクティビティでは、ActionBar は xml レイアウトを表示できませんが、xml ファイルはフラグメント クラスで参照されます。
エラーが発生していますか? AdMob をフラグメント クラスに配置するにはどうすればよいですか。