我知道它已被问及回答here和here。我已经尝试了两种方法,但他们都不适合我。更改切换按钮图像onclick
我有一个喜欢的按钮,如果它被按下,我将这个项目设置为database
中的最爱,并替换toggle button
的图像,反之亦然。这里是我正在做它:
<ToggleButton
android:id="@+id/btnFavorite"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textOn=""
android:textOff=""
android:layout_marginRight="5dp"
android:background="@drawable/favorite_btn_style" />
这里是我的favorite_btn_style.xml
:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/favourit_blue_btn" android:state_checked="true"/>
<!-- pressed -->
<item android:drawable="@drawable/favourit_dark_btn"/>
<!-- default/unchecked -->
</selector>
在oncreate
我检查,如果该项目已被设置为最喜欢的,然后setchecked
到true
:
if (movieObj.getIsFav().intValue() == 1) {
btnFav.setChecked(true);
}
这是我的按钮onclicklistener
:
btnFav.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
if (!btnFav.isChecked()) {
btnFav.setChecked(true);
// set favorite
dbHelper.updateMovieFavorite(movieObj.getId().intValue(), 1);
} else {
btnFav.setChecked(false);
// set favorite
dbHelper.updateMovieFavorite(movieObj.getId().intValue(), 0);
}
}
});
函数被调用,执行得很好,但没有改变图像..我做错了什么?
'onclicklistener'工作正常.. – faizanjehangir