我几乎是一个新手,所以我可以使用一些帮助来了解为什么我的应用程序一直在崩溃?我已经尝试了很多方法,这是我到目前为止最好的方式。
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final TextView lastAnswer = (TextView) findViewById(R.id.textView5);
final TextView answerLabel = (TextView) findViewById(R.id.textView1);
final TextView answerLabel1 = (TextView) findViewById(R.id.textView2);
final TextView answerLabel2 = (TextView) findViewById(R.id.textView3);
final EditText enteredNumber = (EditText) findViewById(R.id.editText1);
Button getAnswerButton = (Button) findViewById(R.id.button1);
getAnswerButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
Random randomGenerator = new Random();
//rand gene
int randomNumber2 = randomGenerator.nextInt(99);
int randomNumber = randomGenerator.nextInt(99);
String number = "";
String number2 = "";
String jtext = " Times ";
number2= Integer.toString(randomNumber2);
number= Integer.toString(randomNumber);
answerLabel.setText(jtext);
answerLabel1.setText(number2);
answerLabel2.setText(number);
String content = enteredNumber.getText().toString();
当我评论条件时,应用程序工作正常,但这不是我想要的全部 我想问题是有条件的,但我似乎无法找到它。 在日食上没有任何错误。
if (content != null){
int anInt=Integer.parseInt(content);
int result= randomNumber2 *randomNumber;
if(anInt == result ){
Context context =getApplicationContext();
CharSequence text = "That's correct!!";
int duration = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(context, text, duration);
toast.show();
} else{
Context context = getApplicationContext();
CharSequence text = "That's not correct";
int duration = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(context, text, duration);
toast.show();
}
lastAnswer.setText(content);
}
}
});}
那么我在这里尝试做什么(介意noob代码)只是生成2个随机数,显示它们然后让用户输入结果,比较它,通知是否正确然后重新生成..我已经这几天一直在努力
感谢任何帮助,甚至是遵循此代码的新方法。感谢。
答案 0 :(得分:1)
你应该用try / catch包围你的解析。被解析为数字的用户输入可能并不总是有效 - 特别是使用EditTexts。变化
int anInt=Integer.parseInt(content);
所以它是
int anInt= -1;
try{
anInt = Integer.parseInt(content);
}
catch (NumberFormatException e)
{
//Show toast or dialog
}
为了让生活更轻松,您应该制作EditText accept in only numbers。
答案 1 :(得分:0)
嗯....为什么你用应用程序上下文来显示祝酒词?我记得最近看到一个同样问题的问题。请尝试使用活动上下文(MainActivity.this
)。
答案 2 :(得分:-1)
在添加评论后清理项目,再次运行
如果这不是您的解决方案,将编辑答案