显示两个随机数并计算奇数和偶数转数的分数。当其中一个达到100时,应用程序停止。
这是我的应用程序的java文件
public class Board_Play1 extends Activity {
int d=0,a=0,b=0,turn=2;
Random random = new Random();
EditText diceno = (EditText) findViewById(R.id.editText1);
EditText p1 = (EditText) findViewById(R.id.editText2);
EditText p2 = (EditText) findViewById(R.id.editText3);
@Override
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.board_play1);
diceno.setText(String.valueOf(d));
p1.setText(String.valueOf(a));
p2.setText(String.valueOf(b));
while(a!=100 && b!=100)
{
if(turn%2==0)
{
Button button = (Button) findViewById(R.id.button1);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
// TODO Auto-generated method stub
d=random.nextInt(6)+1;
EditText diceno = (EditText) findViewById(R.id.editText1);
diceno.setText(String.valueOf(d));
}
});
}
else
{
d=random.nextInt(6)+1;
diceno.setText(String.valueOf(d));
}
if(turn%2==0)
a+=d;
else
b+=d;
if(a>100)
a-=d;
if(b>100)
b-=d;
p1.setText(String.valueOf(a));
p2.setText(String.valueOf(b));
turn++;
}
a=0;b=0;
}
}
它没有打开并提出错误Unfortunately your app has stopped
。为什么会这样?我能改变什么?
答案 0 :(得分:1)
在onCreate
setContentView
内
EditText diceno;
EditText p1;
EditText p2 ;
@Override
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.board_play1);
diceno = (EditText) findViewById(R.id.editText1);
p1 = (EditText) findViewById(R.id.editText2);
p2 = (EditText) findViewById(R.id.editText3);
findViewById
在当前视图层次结构中查找视图。您需要先将布局内容设置为活动,然后使用findViewById
初始化vies。
此外,无需在按钮onClick上重新初始化editText。摆脱下面的相同
EditText diceno = (EditText) findViewById(R.id.editText1);
同时移动此
Button button = (Button) findViewById(R.id.button1);
在while循环之前。无需每次都初始化