我正在创建应用程序,其中我从RadioGroup获取单选按钮值 当我比较if语句中的值时它不起作用。这是我正在使用的Java代码。
if(radioQuizeGroup.getText() == "History"){
Log.d("History", "Activity");
Toast.makeText(StartQuize.this,"History sss ss ", Toast.LENGTH_SHORT).show();
}
else{
Log.d("History", "Error ");
}
我在错误日志中收到错误,
这是错误日志
01-05 07:15:02.885: D/gralloc_goldfish(2035): Emulator without GPU emulation detected.
01-05 07:15:04.165: I/Choreographer(2035): Skipped 43 frames! The application may be doing too much work on its main thread.
01-05 07:15:05.245: D/dalvikvm(2035): GC_FOR_ALLOC freed 86K, 5% free 3139K/3280K, paused 18ms, total 32ms
01-05 07:15:15.236: D/History(2035): Error
请帮帮我
答案 0 :(得分:5)
建议使用
if(radioQuizeGroup.getText().equals("History"))
而不是
if(radioQuizeGroup.getText() == "History")
由于 ==
会比较对象的位置, .equals()
会比较对象的值
答案 1 :(得分:1)
绝不使用==
运算符比较字符串,而是使用equals
方法:
if("History".equals(radioQuizeGroup.getText())){
Log.d("History", "Activity");
Toast.makeText(StartQuize.this, "History sss ss ", Toast.LENGTH_SHORT).show();
} else {
Log.d("History", "Error ");
}
This question有一个很好的答案可以解释这一点。
当然,这假设radioQuizeGroup
实际上是一个getText
方法的小部件,因为RadioGroup
没有...
答案 2 :(得分:0)
我会检查,使用下面的选定项目ID
int selectedId = radioQuizeGroup.getCheckedRadioButtonId();
if(selectedId == RadioButton1.getId()) //Id of the RadioButton1
{
//do something here
}
else
{
//else do something here
}