私は小さなゲームを作成していて、AlertDialog を表示しようとしています。問題は、ユーザーがオプションをクリックしても AlertDialog が消えないことです。
ルーパーを使用しているため、AlertDialog が表示されたときにゲーム スレッドが停止 (ルーパー) し、ユーザーが [キャンセル] をクリックするとゲーム スレッドが再び実行されますが、ダイアログが一番上に表示され、ユーザーはプレイを続けることができません。
public void alerta(){
Looper.prepare();
myHandler = new Handler();
AlertDialog.Builder alertadd = new AlertDialog.Builder(_context);
LayoutInflater factory = LayoutInflater.from(_context);
final View view = factory.inflate(R.layout.custom_dialog, null);
alertadd.setView(view);
alertadd.setNeutralButton("Tomar Foto", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dlg, int sumthin) {
stops++;
Toast.makeText(_context.getApplicationContext(), "Tomaste Foto", Toast.LENGTH_SHORT).show();
}
});
alertadd.setNegativeButton("Cancelar", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dlg, int sumthin) {
System.out.println("Stops = "+stops);
stops++;
Toast.makeText(_context.getApplicationContext(), "Cancelar", Toast.LENGTH_SHORT).show();
myHandler.getLooper().quit();
dlg.dismiss();
}
});
alertadd.show();
Looper.loop();
}