ユーザーが状態をCheckedに変更した後、 CheckBoxの背景を変更しようとしています。以下のコードはうまく機能しません。チェックボックスをオフにすると、状態と色が青に変わります。もう一度クリックしてチェックを外すと、色は赤ではなく青のままになります。私はinvalidate()の呼び出しを成功せずに導入しました。メソッドがクリックを受信し、チェックされたステータスを正しく表示することを確認しましたが、私が行ったステートメントが1回だけ機能するようです。
XML
<CheckBox
android:id="@+id/chkLargeIcons"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="20"
android:onClick="handleCheckBoxClick" />
コード
public void handleCheckBoxClick(View view) {
CheckBox tmpChkBox = (CheckBox) findViewById(view.getId());
if(tmpChkBox.isChecked())
{
tmpChkBox.setBackgroundColor(color.blue);
}
else
{
tmpChkBox.setBackgroundColor(color.red);
}
System.out.println(view.getId() + " " + tmpChkBox.isChecked());
switch (view.getId()) {
case R.id.chkLargeIcons:
...
break;
...
}
...
}
コードを希望どおりに機能させるには、コードを何に変更する必要がありますか?
ヘルプや提案を事前に感謝します。