私は、ダイアログを表示して破壊するために、活動中にshowDialog
とdismissDialog
を使用します。ダイアログを参照する変数を保持せずに、現在表示されているダイアログでクリックコマンドを発行する方法もありますか?AlertDialogのコードで「OK」をクリックする方法は?
たとえば、ダイアログの[OK] /ポジティブボタンをコードで入力したいとします。
私は、ダイアログを表示して破壊するために、活動中にshowDialog
とdismissDialog
を使用します。ダイアログを参照する変数を保持せずに、現在表示されているダイアログでクリックコマンドを発行する方法もありますか?AlertDialogのコードで「OK」をクリックする方法は?
たとえば、ダイアログの[OK] /ポジティブボタンをコードで入力したいとします。
を:また
AlertDialog dialog = ...
dialog.getButton(DialogInterface.BUTTON_POSITIVE).performClick();
、ダイアログへの参照を保持したくない場合はその設定を制御している、あなたは他の方法にクリックコードの抽出ができます
AlertDialog.Builder builder = ...
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
onPositiveButtonClicked();
}
});
と0を実装しますアクティビティのプログラムで[OK]ボタンをクリックする代わりにonPositiveButtonClicked()
とdismissDialog(id)
と呼ぶことができます。複数のダイアログを処理する必要がある場合は、onPositiveButtonClicked
にid
パラメータを設定します。
ありがとう、私はBuilderを使用していて、 'getButton'メソッドはありません。実際のダイアログの参照を保持せずに[OK]ボタンをクリックする方法はありますか? – Arci
ダイアログを参照できる場合、AlertDialogインスタンスはAlertDialog.Builder#show()によって返されます。それ以外の場合は、オンクリックロジックを別のメソッドに移動することは可能ですか?クリックをシミュレートする代わりに、オンクリックコードを実行してダイアログを閉じるだけで済みます。 –
はい、 'AlertDialog'を返しますが、' AlertDialog'を参照する変数を保持したくありません。私はダイアログのIDを持っているので、 'Activity'を使ってダイアログにアクセスする方法はありますか? – Arci
このお試しください: - 私はこのコードをテストしていませんが、それは動作するはず
AlertDialog.Builder alBuilder = new AlertDialog.Builder(this);
alBuilder
.setMessage("Do you wamt to exit?")
.setPositiveButton("Yes",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
dialog.cancel();
// Write your code here for Yes
}
})
.setNegativeButton("No",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
dialog.cancel();
// Write your code here for No
}
});
alBuilder.setCancelable(false);
alBuilder.show();
ありがとう!しかし、私はあなたが私の質問を誤解していると思う。 – Arci
私はあなたがほしいと思うことを理解できるように、urコードを投稿することができます。 – bakriOnFire
私は 'activity.getActiveDialog(DIALOG_ID).getButton(...)performClick()'のようなものを探しています。 'activity.dismissDialog(DIALOG_ID)'と同様に、DIALOG_IDだけでダイアログを閉じることができます。 – Arci
私ははい、あなたは
POSITIVE
BUTTONのインスタンスを取得することによってそれを行うと、それにperformClick()
を呼び出すことができるコード
を経由して、ダイアログの「OK」/正のボタンを押します。それを試してみてください:
Button okButton = alertDialog.getButton(DialogInterface.BUTTON_POSITIVE);
okButton.performClick(); //<<< click Button using code
ありがとう!しかし、私が変数に言及していないとどうなりますか? 'POSITIVE'ボタンに' Activity'だけを使ってアクセスする方法はありますか?( 'dismissDialog'と同じですか?) – Arci
あなたはダイアログを設定するためにビルダーを使用していますか? – TronicZomB
@TronicZomB:はい、私は 'Builder'を使っています。私は' Activity'で 'onCreateDialog'をオーバーライドしてダイアログを設定しています。 – Arci
わかりました.BakriOnFireは、私が彼の答えに気付く前に、私が実際に投稿していたもののかなり良い例を持っています。それは、あなたのコードをモデル化したいと思うようなものです。 – TronicZomB