【发布时间】:2016-09-25 18:38:48
【问题描述】:
当我根据给定条件选中复选框时,我想更改 CheckBox 按钮图标/图像。在这里,我正在使用 MSQS,如果 ANSWER Correct 检查然后更改文本框的图像,类似地,当 Answer 检查为 false 然后也更改图像时,我已将图像保存在可绘制中,请任何人告诉我这是怎么可能的。
当 Checkbox 选中一次时,不应再次选中或取消选中。提前谢谢谁会帮助我。
public void onCheckboxClicked(View view) {
switch(view.getId()) {
case R.id.chk_ans1ID:
ans_2.setChecked(false);
ans_3.setChecked(false);
ans_4.setChecked(false);
ans_2.setEnabled(false);
ans_3.setEnabled(false);
ans_4.setEnabled(false);
if (QuizActivity.op1.equalsIgnoreCase(QuizActivity.ans)) {
correct++;
} else if (QuizActivity.op2.equalsIgnoreCase(QuizActivity.ans)) {
ans_2.setChecked(true);
incorrect++;
} else if (QuizActivity.op3.equalsIgnoreCase(QuizActivity.ans)) {
ans_3.setChecked(true);
incorrect++;
} else if (QuizActivity.op4.equalsIgnoreCase(QuizActivity.ans)) {
ans_4.setChecked(true);
incorrect++;
} else {
Toast.makeText(QuizActivity.this, "No Answer Match!", Toast.LENGTH_LONG).show();
Toast.makeText(QuizActivity.this, "answer= "+ans, Toast.LENGTH_LONG).show();
}
break;
case R.id.chk_ans2ID:
ans_1.setChecked(false);
ans_3.setChecked(false);
ans_4.setChecked(false);
ans_1.setEnabled(false);
ans_3.setEnabled(false);
ans_4.setEnabled(false);
if (QuizActivity.op2.equalsIgnoreCase(QuizActivity.ans)) {
correct++;
} else if (QuizActivity.op1.equalsIgnoreCase(QuizActivity.ans)) {
ans_1.setChecked(true);
incorrect++;
} else if (QuizActivity.op3.equalsIgnoreCase(QuizActivity.ans)) {
ans_3.setChecked(true);
incorrect++;
} else if (QuizActivity.op4.equalsIgnoreCase(QuizActivity.ans)) {
ans_4.setChecked(true);
incorrect++;
} else {
Toast.makeText(QuizActivity.this, "No Answer Match!", Toast.LENGTH_LONG).show();
Toast.makeText(QuizActivity.this, "answer= "+ans, Toast.LENGTH_LONG).show();
}
break;
}
}
这是我的复选框的xml
<CheckBox
android:id="@+id/chk_ans4ID"
android:layout_width="match_parent"
android:layout_height="64dp"
android:button="@drawable/custom_checkbox"
android:onClick="onCheckboxClicked"
android:text="CheckBox" />
这是我的 custom_checkbox.XML
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/checkbox_inactive"
android:state_checked="false"/>
<item android:drawable="@drawable/checkbox_active"
android:state_checked="true"/>
<item android:drawable="@drawable/checkbox_inactive"/>
</selector>
它在模拟器上对我来说非常有用,但是当我在 Android 手机上使用这个应用程序时,复选框按钮图标上的文本覆盖了我如何防止它?
【问题讨论】:
-
同样的问题,回答的很好You can get solution from this link