私はAndroidが初めてで、これをフォローしています 例 。
コードには、ダイアログボックスを表示するために次の手順を実行する必要があると書かれています。
_AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
// 2. Chain together various setter methods to set the dialog characteristics
builder.setMessage(R.string.dialog_message)
.setTitle(R.string.dialog_title);
// 3. Get the AlertDialog from create()
AlertDialog dialog = builder.create();
_
しかし、getActivity()
メソッドはどこで定義されていますか?
その方法が見つかりません。
getActivity()
メソッドは、アクティビティのコンテキストを提供します。代わりに_YourActivityName.this
_を使用できます。
メソッドgetActivity()
は通常、フラグメントで使用され、挿入または拡張されるアクティビティのコンテキストを取得します。
例えば
_AlertDialog.Builder builder = new AlertDialog.Builder(YourActivityName.this);
_
またはアクティビティ自体にコードを書いている場合でも
_AlertDialog.Builder builder = new AlertDialog.Builder(this);
_
トレーニングします。ご不明な点はお気軽にお問い合わせください
new AlertDialog.Builder()には、入力パラメーターとしてコンテキストが必要です。ので試してみてください
AlertDialog.Builder builder = new AlertDialog.Builder(yourActivityName.this);
getActivity()はFragmentクラスに実装されています。
http://developer.Android.com/reference/Android/app/Fragment.html を参照してください
コンストラクタ AlertDialog.Builder
には、Context
パラメーターが必要です。 Context
は、Activity
、Service
などからアクセスできます。これらはすべてextend
Context
であり、this
として渡すことができるためです。
メソッドgetActivity()
は、Fragment
クラスで他の人が言及しているように宣言されます。
私はまったく同じ問題を抱えていて、最終的に私が実際に疑っているものを見つけました...単に追加してください:
dialog.show();
...そして出来上がり。そこにそれがある。なぜこれが元の例に記載されていないのでしょうか!?
この記事では、AlertDialog
にFragment
を作成する方法について説明します。フラグメントでは、getActivity()
メソッドを呼び出すことにより、対応するActivity
を取得できます。しかし、あなたの場合、あなたはActivity
でこれをしていると仮定します。したがって、getActivity()
を呼び出す必要はありません。 this
を使用してください
AlertDialog.Builder builder = new AlertDialog.Builder(this);
getActivity(); Android Fragmentのメソッドです。アクティビティにダイアログを表示する場合は、getActivity()
の代わりにアクティビティのthis
を渡すだけです。
getActivity()
は、拡張元のスーパークラスActivityのメンバーメソッドです。それはで定義されます アクティビティ クラス自体。 infact onCreate()
、onPause()
および他のすべての関数は、それ自体も親で定義されます アクティビティ クラス。
getActivityを使用する場合、新しいものを配置する必要はありません...など
PendingIntent pi=new PendingIntent.getActivity(this,0,intent,0); //is wrong
ユーザーとして:
PendingIntent pi=PendingIntent.getActivity(this,0,intent,0); //is Right code
ここでは、新しい割り当てを提供するnewを削除しますが、ここでは、Activity(this)でgetActivity inを介して割り当てを提供します。
更新Android APIレベル23。
getContext()
の代わりにgetActivity()
を使用します。
// 1.コンストラクタでAlertDialog.Builderをインスタンス化します
AlertDialog.Builder builder = new AlertDialog.Builder(yourActivityName.this);
// 2.ダイアログの特性を設定するためにさまざまなセッターメソッドを連結します
builder.setMessage(R.string.dialog_message).setTitle(R.string.dialog_title);
// 3. create()からAlertDialogを取得します
AlertDialog dialog = builder.create();
// 4. AlertDialogを表示
dialog.show();