我的列表标题中有一个切换按钮(recyclerview)。但是当它被压迫时,它并没有改变状态。
这是onClick上的代码
if (btnFav.isChecked()) {
btnFav.setChecked(false);
} else {
btnFav.setChecked(true);
}
Toast.makeText(itemView.getContext(), "check state is =" + btnFav.isChecked(), Toast.LENGTH_LONG).show();
这是xml中的切换按钮
<ToggleButton
android:id="@+id/btn_fav"
android:layout_width="32dp"
android:layout_height="32dp"
android:background="@drawable/btn_fav_bg"
android:clickable="true"
android:padding="10dp"
android:textOff=""
android:textOn="" />
另外,我正在使用recycler viewholder绑定适配器中的标头视图。 当我点击切换按钮时,toast仅显示&#34; check state is = false&#34;
答案 0 :(得分:1)
您OnClickListener
上设置的ToggleButton
正在抵消按钮的固有行为。单击时ToggleButton
将处理自己检查的状态。而不是OnClickListener
,而是在其上设置OnCheckedChangeListener
,并将Toast
移到那里。
btnFav.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton button, boolean isChecked) {
Toast.makeText(itemView.getContext(), "check state is =" + isChecked,
Toast.LENGTH_LONG).show();
}
}
);