24

私はアンドロイドが初めてで、このに従っています。

このコードは、ダイアログ ボックスを表示するために次の手順を実行する必要があることを示しています。

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()定義されていますか?

その方法が見つかりません。

4

11 に答える 11

59

このgetActivity()メソッドは、Activity のコンテキストを提供します。YourActivityName.this代わりに使えます。

このメソッドgetActivity()は通常、フラグメントで使用され、フラグメントが挿入または膨張されるアクティビティのコンテキストを取得します。

例えば

AlertDialog.Builder builder = new AlertDialog.Builder(YourActivityName.this);

または、アクティビティ自体にコードを書いている場合でも

AlertDialog.Builder builder = new AlertDialog.Builder(this);

トレーニングします。ご不明な点はお気軽にご質問ください

于 2013-01-23T12:50:55.223 に答える
2

new AlertDialog.Builder() には、入力パラメータとして Context が必要です。だから試してみてください

AlertDialog.Builder builder = new AlertDialog.Builder(yourActivityName.this);
于 2013-01-23T13:10:41.530 に答える
1

getActivity()はFragmentクラスに実装されています。

http://developer.android.com/reference/android/app/Fragment.htmlを参照してください

于 2013-01-23T12:50:31.407 に答える
1

コンストラクターAlertDialog.BuilderにはContextパラメーターが必要です。などContextからアクセスできます。これらはすべてであり、 として渡すことができます。ActivityServiceextend Contextthis

メソッドgetActivity()は、他の人がクラスで言及したように宣言されていますFragment

于 2013-01-23T12:53:40.937 に答える
0

AlertDialogこの記事では、でを作成する方法について説明しますFragmentActivityフラグメントでは、メソッドを呼び出すことで対応するものを取得できますgetActivity()。しかし、あなたの場合、私はあなたがこれをでやっていると思いますActivity。したがって、を呼び出す必要はありませんgetActivity()。使用するだけthis

AlertDialog.Builder builder = new AlertDialog.Builder(this);
于 2013-01-23T12:50:41.060 に答える
0

getActivity(); はandroidFragmentのメソッドです。アクティビティにダイアログを表示する場合は、thisの代わりにアクティビティを渡すだけですgetActivity()

于 2013-01-23T12:50:42.907 に答える
0

Android API レベル 23 を更新します。

getContext()の代わりに使用しgetActivity()ます。

于 2015-10-16T13:09:24.780 に答える
0

getActivity()から拡張するスーパー クラス Activity のメンバー メソッドです。Activityクラス自体で定義されます。infactonCreate()onPause()あり、他のすべての関数自体も親アクティビティクラスで定義されています。

于 2013-01-23T12:51:17.587 に答える
0

私はまったく同じ問題を抱えていましたが、最終的に私が実際に疑っていたものを見つけました...単純に追加します:

dialog.show();

...そして出来上がり。そこにそれがある。なぜこれが元の例に記載されていないのだろうか!?

于 2015-04-28T19:12:46.687 に答える
0

getActivity を使用すると、 new... などを配置する必要はありません

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 を介してその割り当てを提供します。

于 2018-05-26T13:48:15.557 に答える