大家好,所以我很新的Java和这个代码下面肯定会证明这一点。 我非常感谢任何提示我出错的地方,谢谢!为什么当我点击某个按钮时,我的应用程序崩溃?
我试图创建一个简单的应用程序,显示一个随机的报价,并给出了猜测谁说的机会。
可以肯定的主要问题有---> if(guessNameInt == whoSaidItInt) 因为它只会在我点击启用tryLuck if语句的按钮时崩溃。
我的继承人下面
int randomNum;
String whoSaidIt;
// quotes and numbers
public void randomRick(View view) {
if (randomNum == 0) {
Toast.makeText(getApplicationContext(), "Life is effort and I'll stop when I die!", Toast.LENGTH_LONG).show();
whoSaidIt = "Jerry";
}
if (randomNum == 1) {
Toast.makeText(getApplicationContext(), "Well look where being smart got you.", Toast.LENGTH_LONG).show();
whoSaidIt = "Jerry";
}
if (randomNum == 2) {
Toast.makeText(getApplicationContext(), "Ohh yea, you gotta get schwifty.", Toast.LENGTH_LONG).show();
whoSaidIt = "Rick";
}
}
public void tryLuck(View view) {
EditText guessedName = (EditText) findViewById(R.id.authorIs);
String guessedNameString = guessedName.getText().toString();
int guessNameInt = Integer.parseInt(guessedNameString);
int whoSaidItInt = Integer.parseInt(whoSaidIt);
if (guessNameInt == whoSaidItInt) {
Toast.makeText(getApplicationContext(), "Holy crow, Good job!", Toast.LENGTH_LONG).show();
}
else {
Toast.makeText(getApplicationContext(), "Try again", Toast.LENGTH_LONG).show();
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Random randomGenerator = new Random();
randomNum = randomGenerator.nextInt(3);
}`
没有堆栈跟踪,这是很难说,但它是非常奇怪的,你想为一个字符串(guessedNameString)转换为int(数字)。因此,如果您输入“Albert Einstein”,并将其转换为int,则Java代码将引发错误。解决方案?不要将它转换为int :-)解决方案可能涉及比较字符串,所以如果你这样做,请使用.equals,而不是==。只是谷歌。 –
您将该名称设置为一个字符串'whoSaidIt =“瑞克”;'但你尝试分析它的整数'的Integer.parseInt(whoSaidIt);'。这是行不通的 – Arc676
邮报([编辑])您的logcat –