我正在嘗試創建一個sudoku板,當您按下其中一個空按鈕時,它將顯示 您有一個警報對話框,其中包含數字1-9的10個按鈕結束一個空的按鈕; 當我按下對話框中的其中一個按鈕沒有任何反應。AlertDialog中的Onclick不起作用
遊戲代碼:
AlertDialog.Builder alert=new AlertDialog.Builder(this);
alert.setView(View.inflate(this, R.layout.activity_dialog, null));
alert.show();
Intent e=getIntent();
int s=e.getIntExtra("number", 0);
對話框代碼:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_dialog);
button1=(Button)findViewById(R.id.btn1);
button1.setOnClickListener(this);
button2=(Button)findViewById(R.id.btn2);
button2.setOnClickListener(this);
button3=(Button)findViewById(R.id.btn3);
button3.setOnClickListener(this);
button4=(Button)findViewById(R.id.btn4);
button4.setOnClickListener(this);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.dialog, menu);
return true;
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Button b=(Button)v;
if(b==button1)
{
button1.setText("hay");
Intent i=new Intent(this,EasyGame.class);
i.putExtra("number", 1);
startActivity(i);
}
else
{
if(b==button2)
{
Intent i=new Intent(this,EasyGame.class);
i.putExtra("number", 2);
startActivity(i);
}
else
{
if(b==button3)
{
Intent i=new Intent(this,EasyGame.class);
i.putExtra("number", 3);
startActivity(i);
}
else
{
if(b==button4){
Intent i=new Intent(this,EasyGame.class);
i.putExtra("number", 4);
startActivity(i);
}
你不能指望別人瞭解給你
Activity
一個Dialog
外觀通過你的數百行代碼來找到你的bug。當你有這樣的問題時,你通常希望在某種微不足道的情況下(幾行代碼)重現你的問題,如果這不能幫助你找到問題,那麼你在這裏發佈問題... – hendrix我不能真的減少對話框代碼,但我更新了遊戲代碼到更具體的行 – user2747228
如果你不想減少對話框代碼,你只需創建一個新的簡單項目,只需一個按鈕就可以實現簡單的警報對話框,然後嘗試是否可行。 – hendrix