如何根据意图字符串检查单选按钮
How to check radio button based on intent string
我正在尝试根据从前一个 activity 发送的意图派生的值来检查单选按钮。屏幕加载后,radioButton.getText().toString() 应该与特定值进行比较,并检查该特定单选按钮是否评估为真,但我没有得到预期的结果。
我查看过堆栈溢出和各种 documentation/tutorial 站点,但我没有遇到任何其他人遇到此特定问题。谁能指出我解决这个问题的正确方向?
这是相关的 activity 代码:
courseStatus = getIntent().getStringExtra("course_status");
editCourseStatusG = findViewById(R.id.radioGroup1);
editStatusComplete = findViewById(R.id.editStatusCompleted);
editStatusDropped = findViewById(R.id.editStatusDropped);
editStatusOngoing = findViewById(R.id.editStatusOngoing);
editStatusPlanned = findViewById(R.id.editStatusPlanned);
if(courseStatus.equals(editStatusComplete.getText().toString())) {
editStatusComplete.setChecked(true);
} else if (courseStatus.equals(editStatusDropped.getText().toString())) {
editStatusDropped.setChecked(true);
} else if ((courseStatus.equals(editStatusOngoing.getText().toString()))) {
editStatusOngoing.setChecked(true);
} else if ((courseStatus.equals(editStatusPlanned.getText().toString()))) {
editStatusPlanned.setChecked(true);
}
XML代码:
<RadioGroup
android:id="@+id/radioGroup1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<RadioButton
android:id="@+id/editStatusOngoing"
android:layout_width="match_parent"
android:text="Ongoing"
android:layout_height="wrap_content"
android:ems="10"
android:layout_weight="1"/>
<RadioButton
android:id="@+id/editStatusCompleted"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Completed"
android:ems="10"
android:layout_weight="1"/>
<RadioButton
android:id="@+id/editStatusDropped"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:text="Dropped"
android:layout_weight="1"/>
<RadioButton
android:id="@+id/editStatusPlanned"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:text="Planned"
android:layout_weight="1"/>
</RadioGroup>
在进行了一些故障排除后,我仍然找不到手头问题的答案。 getText() 方法未正确评估给定的字符串。但是,解决它的方法是直接将意图直接与静态字符串变量进行比较,该变量具有与 radioButton.getText() 方法相同的文本应该 return.
工作代码:
editCourseStatusG = findViewById(R.id.radioGroup1);
editStatusComplete = findViewById(R.id.editStatusCompleted);
editStatusDropped = findViewById(R.id.editStatusDropped);
editStatusOngoing = findViewById(R.id.editStatusOngoing);
editStatusPlanned = findViewById(R.id.editStatusPlanned);
try {
switch (courseStatus) {
case "Completed":
editStatusComplete.setChecked(true);
break;
case "Dropped":
editStatusDropped.setChecked(true);
break;
case "Ongoing":
editStatusOngoing.setChecked(true);
break;
case "Planned":
editStatusPlanned.setChecked(true);
break;
default:
editStatusPlanned.setChecked(true);
}
} catch(NullPointerException e) {
editStatusPlanned.setChecked(true);
}
我正在尝试根据从前一个 activity 发送的意图派生的值来检查单选按钮。屏幕加载后,radioButton.getText().toString() 应该与特定值进行比较,并检查该特定单选按钮是否评估为真,但我没有得到预期的结果。
我查看过堆栈溢出和各种 documentation/tutorial 站点,但我没有遇到任何其他人遇到此特定问题。谁能指出我解决这个问题的正确方向? 这是相关的 activity 代码:
courseStatus = getIntent().getStringExtra("course_status");
editCourseStatusG = findViewById(R.id.radioGroup1);
editStatusComplete = findViewById(R.id.editStatusCompleted);
editStatusDropped = findViewById(R.id.editStatusDropped);
editStatusOngoing = findViewById(R.id.editStatusOngoing);
editStatusPlanned = findViewById(R.id.editStatusPlanned);
if(courseStatus.equals(editStatusComplete.getText().toString())) {
editStatusComplete.setChecked(true);
} else if (courseStatus.equals(editStatusDropped.getText().toString())) {
editStatusDropped.setChecked(true);
} else if ((courseStatus.equals(editStatusOngoing.getText().toString()))) {
editStatusOngoing.setChecked(true);
} else if ((courseStatus.equals(editStatusPlanned.getText().toString()))) {
editStatusPlanned.setChecked(true);
}
XML代码:
<RadioGroup
android:id="@+id/radioGroup1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<RadioButton
android:id="@+id/editStatusOngoing"
android:layout_width="match_parent"
android:text="Ongoing"
android:layout_height="wrap_content"
android:ems="10"
android:layout_weight="1"/>
<RadioButton
android:id="@+id/editStatusCompleted"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Completed"
android:ems="10"
android:layout_weight="1"/>
<RadioButton
android:id="@+id/editStatusDropped"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:text="Dropped"
android:layout_weight="1"/>
<RadioButton
android:id="@+id/editStatusPlanned"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:text="Planned"
android:layout_weight="1"/>
</RadioGroup>
在进行了一些故障排除后,我仍然找不到手头问题的答案。 getText() 方法未正确评估给定的字符串。但是,解决它的方法是直接将意图直接与静态字符串变量进行比较,该变量具有与 radioButton.getText() 方法相同的文本应该 return.
工作代码:
editCourseStatusG = findViewById(R.id.radioGroup1);
editStatusComplete = findViewById(R.id.editStatusCompleted);
editStatusDropped = findViewById(R.id.editStatusDropped);
editStatusOngoing = findViewById(R.id.editStatusOngoing);
editStatusPlanned = findViewById(R.id.editStatusPlanned);
try {
switch (courseStatus) {
case "Completed":
editStatusComplete.setChecked(true);
break;
case "Dropped":
editStatusDropped.setChecked(true);
break;
case "Ongoing":
editStatusOngoing.setChecked(true);
break;
case "Planned":
editStatusPlanned.setChecked(true);
break;
default:
editStatusPlanned.setChecked(true);
}
} catch(NullPointerException e) {
editStatusPlanned.setChecked(true);
}