与えられた条件に従ってチェックボックスをチェックしたときに、checkBoxボタンのアイコン/画像を変更したい。ここで私はMSQSを使用しています。ANSWERCorrectをチェックしてからテキストボックスの画像を変更します。同様に、Answer check falseの場合は画像も変更します。画像をドローアブルに保存しているので、どうすればよいか教えてください。チェックボックスを一度チェックすると、再度チェックしたり、チェックを外したりしないでください。助けてくれる人に事前に感謝します。
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モバイルでこのアプリを使用すると、チェックボックスボタンアイコンのテキストが上書きされて防止できますか?
これを試して、このxmlをドローアブルフォルダにします
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>
プログラムでドローアブルを追加するためにこれを使用しました
yourcheckbox.setButtonDrawable(R.drawable.custom_checkbox);
これをxmlに使用しました
android:button="@drawable/custom_checkbox"
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加