我有這個AlertDialog應該是兩個玩家之間的決鬥。它顯示了一個決鬥的圖像,並在三秒鐘後,由於計時器,它顯示「BANG」圖像。當出現「BANG」圖像時,玩家必須按下「BANG」按鈕並且潰敗者獲勝。我的問題是,按鈕上的監聽器不工作,我不能關閉alertDialog。這是代碼AlertDialog按鈕不起作用,它不會解僱
package com.example.root.gbu;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.SystemClock;
import android.widget.ImageView;
public class DuelFrame {
private Context context;
private long startTime;
private long endTime;
private boolean timeToShot=false;
private ImageView image;
private AlertDialog alertDialog;
public DuelFrame(String enemy, Context context){
this.context = context;
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle("Duel against " + enemy);
image = new ImageView(context);
image.setImageResource(R.drawable.duel_start);
builder.setView(image);
builder.setNegativeButton("BANG",
new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int id)
{
System.out.println("********************BANG PREMUTO*************************");
if(timeToShot) {
endTime = SystemClock.elapsedRealtimeNanos();
ConnectionStream.getOut().println("TIME:" + String.valueOf(endTime - startTime));
}
else
ConnectionStream.getOut().println("TIME:LOSE");
}
});
alertDialog = builder.create();
}
public void start(){
((Activity)context).runOnUiThread(new Runnable(){//mostro la finestra
@Override
public void run(){
alertDialog.show();
}
});
new java.util.Timer().schedule(//timer per cambiare l'immagine
new java.util.TimerTask() {
@Override
public void run() {
((Activity)context).runOnUiThread(new Runnable(){
@Override
public void run(){
image.getLayoutParams().height = image.getHeight();
image.getLayoutParams().width = image.getWidth();
image.setImageResource(R.drawable.bang);
startTime = SystemClock.elapsedRealtimeNanos();
timeToShot = true;
}
});
}
}, 3000);
}
public void cancel(){
((Activity)context).runOnUiThread(new Runnable(){
@Override
public void run(){
alertDialog.dismiss();
}
});
}
}
所以我需要修復的onClickListener和取消()函數
終於有人設法以好的方式回答,謝謝! –