ボタンのonClick(View view)
のコールバックであるonClickListener()
内のコンテキストを取得するのは簡単です。
view.getContext()
しかし、dialog 's onClickListener
のコールバックであるonClick(DialogInterface v, int buttonId)
内でコンテキストを取得する方法がわかりません。
public class MainActivity extends Activity implements Android.content.DialogInterface.OnClickListener
これは可能ですか?
DialogInterface.OnClickListener
を匿名クラスとして定義すると、外部コンテキストを参照できます。アクティビティに参加している場合は、MyActivity.this
をコンテキストとして使用できます。
編集-アクティビティはDialogInterface.OnClickListener
を実装しているので、コンテキストとしてthis
を使用することができます。
DialogInterfaceがMainActivity内にある場合、次を使用してコンテキストを取得できます。
MainActivity.this.getActivityContext();
ところで、DialogInterfaceを実装することもできます(コードサンプルでは、実装を2回記述しました)。同じステートメントを使用して、アクティビティコンテキストを取得できます。
ここにあなたがそれをする方法があります
ただ、
dialogInterface
オブジェクトを使用して、Dialog
オブジェクトにキャストしますgetContext()
を呼び出しますDialogInterface.OnClickListener の例:
DialogInterface.OnClickListener foo = new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int which) {
Dialog dialog = (Dialog) dialogInterface;
Context context = dialog.getContext();
// do some work with context
}
};
これは、次のインターフェイスでも機能します。最初のparam DialogInterface dialogInterface
とキャスト。
setOnClickListener内
これをクラスの下で減速する
_Context context = this;
_
このコンテキストを使用します
AlertDialog.Builder alertDialog = new AlertDialog.Builder(context);