私は Android 開発を学んでおり、約 20 個のダイアログ (はい、ボタンなし) を持つアプリの作成を開始しました。はい/いいえを押すとtrueまたはfalseを返すクラスを作成する予定でした。それではクラスはこちら
public class CustomDialog{
Boolean Resp;
public Boolean Confirm(Activity act, String Title, String ConfirmText,
String CancelBtn, String OkBtn) {
AlertDialog dialog = new AlertDialog.Builder(act).create();
dialog.setTitle(Title);
dialog.setMessage(ConfirmText);
dialog.setCancelable(false);
dialog.setButton(DialogInterface.BUTTON_POSITIVE, OkBtn,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int buttonId) {
Resp = true;
}
});
dialog.setButton(DialogInterface.BUTTON_NEGATIVE, CancelBtn,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int buttonId) {
Resp = false;
}
});
dialog.setIcon(android.R.drawable.ic_dialog_alert);
dialog.show();
if (Resp == null){
Resp = false;
}
return Resp;
}
}
ボタンクリックリスナー内でメインアクティビティからこれを呼び出すと、アプリがクラッシュします。
@Override
public void onClick(View v) {
if (v.getId() == R.id.Toast){
CustomDialog tans = new CustomDialog();
boolean tan = tans.Confirm(MainActivity.this, "Message Title", "Message Text Goes Here", "No", "Yes");
if (tan){
Toast.makeText(this, "wow", Toast.LENGTH_LONG).show();
}
}
}
修正するにはあなたのアドバイスが必要です。
編集:コードを更新しました。アプリは現在クラッシュしていませんが、[はい]を押してもトーストはありません。