web-dev-qa-db-ja.com

getActivity()それが定義されている場所?

私は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()メソッドはどこで定義されていますか?

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

19
sriram

getActivity()メソッドは、アクティビティのコンテキストを提供します。代わりに_YourActivityName.this_を使用できます。

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

例えば

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

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

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

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

49
pvn

new AlertDialog.Builder()には、入力パラメーターとしてコンテキストが必要です。ので試してみてください

AlertDialog.Builder builder = new AlertDialog.Builder(yourActivityName.this);
2
Raj

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

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

1
userM1433372

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

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

1
Ovidiu Latcu

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

dialog.show();

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

0
p s

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

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

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

0
Aram

getActivity()は、拡張元のスーパークラスActivityのメンバーメソッドです。それはで定義されます アクティビティ クラス自体。 infact onCreate()onPause()および他のすべての関数は、それ自体も親で定義されます アクティビティ クラス。

0
Rahul Verma

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

0
Pradeep Sheoran

更新Android APIレベル23。

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

0
Aks4125

// 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();
0
RobertoIngECR