我在另一种方法中使用onClick()
方法,并在调用gewinnGruen()
方法时崩溃。
请帮助我知道原因:
public void gewinnGruen() {
Dialog dialog = new Dialog(this, android.R.style.Theme_Translucent_NoTitleBar_Fullscreen);
dialog.setContentView(R.layout.winnergreen);
dialog.show();
newgame1 = (Button) findViewById(R.id.newgame1);
newgame1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
field1.setBackgroundResource(R.drawable.field0);
place1 = 0;
}
});
}
如果没有onClick()
方法,它就不会崩溃,一切正常。
答案 0 :(得分:2)
更改此
newgame1 = (Button) findViewById(R.id.newgame1);
到
newgame1 = (Button)dialog. findViewById(R.id.newgame1);
您正在此行中遇到NullPointerException。
这是因为,您正在尝试在已创建的对话框中初始化Button,但是您没有在此处为方法提供Dialog对象。所以它查看Activity的视图并返回null,因为它无法在那里找到任何id。
答案 1 :(得分:2)
newgame1 = (Button)dialog.findViewById(R.id.newgame1);
^^^^^^
答案 2 :(得分:1)
用
替换你的代码public void gewinnGruen() {
Dialog dialog = new Dialog(this, android.R.style.Theme_Translucent_NoTitleBar_Fullscreen);
dialog.setContentView(R.layout.winnergreen);
dialog.show();
newgame1 = (Button) dialog.findViewById(R.id.newgame1);
newgame1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
field1.setBackgroundResource(R.drawable.field0);
place1 = 0;
}
});
}