Java 随机数生成器-Android-xxx已停止工作
} 我没有收到任何错误,因此eclipse允许我运行程序,但当它即将执行时,它会给我一个错误,说“不幸的是,程序名已停止”Java 随机数生成器-Android-xxx已停止工作,java,android,random,numbers,generator,Java,Android,Random,Numbers,Generator,} 我没有收到任何错误,因此eclipse允许我运行程序,但当它即将执行时,它会给我一个错误,说“不幸的是,程序名已停止” 我做错了什么?我非常感谢您的洞察力。将所有这些 public class MainActivity extends Activity { int minValue; int maxValue; int rndNum; TextView rndNumText = (TextView) findViewById(R.id.Number); EditText MinVal =
我做错了什么?我非常感谢您的洞察力。将所有这些
public class MainActivity extends Activity {
int minValue;
int maxValue;
int rndNum;
TextView rndNumText = (TextView) findViewById(R.id.Number);
EditText MinVal = (EditText) findViewById(R.id.editTextMin);
EditText MaxVal = (EditText) findViewById(R.id.editTextMax);
Button btnRandom = (Button) findViewById(R.id.Randomize);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnRandom.setOnClickListener(new View.OnClickListener() {
public void onClick(View v){
minValue = Integer.parseInt(MinVal.getText().toString());
maxValue = Integer.parseInt(MaxVal.getText().toString());
Random r = new Random();
rndNum = r.nextInt(maxValue - minValue + 1) + minValue;
rndNumText.setText(Integer.toString(rndNum));
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
在
setContextView()
之后的onCreate
中,否则视图尚未初始化并提供id。请发布错误日志。很抱歉,我对android有点陌生。我知道了如何让logcat工作,但我应该复制/粘贴它的哪些部分?当我尝试执行代码时,有100多行代码lolI尝试了这一点,它给了我更多的错误,比如“不能引用在不同方法中定义的内部类中的非最终变量MinVal”“不能引用在不同方法中定义的内部类中的非最终变量MaxVal”“无法在另一个方法中定义的内部类中引用非最终变量rndNumText”@user3124331将声明保留在该方法之外,以便它们是实例变量。只需在内部初始化它们即可。哇,它现在起作用了!!!TY!我不明白为什么会发生这种情况(在外部声明和初始化内部,而不是在子程序中做这两件事)@用户取决于您希望变量拥有的范围。通过,也可以考虑接受答案。
TextView rndNumText = (TextView) findViewById(R.id.Number);
EditText MinVal = (EditText) findViewById(R.id.editTextMin);
EditText MaxVal = (EditText) findViewById(R.id.editTextMax);
Button btnRandom = (Button) findViewById(R.id.Randomize);