如何使用 RadioGroup 将单选按钮值与字符串进行比较

how to compare Radio Button value to string using RadioGroup

我正在创建应用程序,我在其中从 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 

请帮助我

切勿使用 == 运算符比较字符串,而是使用 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 没有...

推荐使用

if(radioQuizeGroup.getText().equals("History"))

而不是

if(radioQuizeGroup.getText() == "History")

因为==比较对象的位置.equals()比较对象的值

我会使用如下所示的所选项目 ID 进行检查

int selectedId = radioQuizeGroup.getCheckedRadioButtonId();
if(selectedId == RadioButton1.getId()) //Id of the RadioButton1
 {
 //do something here
 } 
 else 
{
 //else do something here
 }