gpt4 book ai didi

android - onCheckedChanged 自动调用

转载 作者:IT老高 更新时间:2023-10-28 13:17:25 24 4
gpt4 key购买 nike

我在 recyclerview 中有一个开关,从 DB 检索数据后,数据会显示在 recyclerview 中。当 recyclerview 打开时,我读取 DB,如果 DB 中的字段为“Y”,则启用开关,否则禁用开关。现在的问题是 onCheckedchanged 监听器也被调用了,我希望只有在用户手动设置开关时才调用 onCheckedChanged。

在打开recyclerview时执行如下:

holder.enabledisable.setChecked(messengerRecord.get_is_valid().equalsIgnoreCase("Y"));

ViewHolder 类:

public class viewHolder extends RecyclerView.ViewHolder implements CompoundButton.OnCheckedChangeListener{
public SwitchCompat enabledisable;
public viewHolder(View v) {
enabledisable = (SwitchCompat) v.findViewById(R.id.enabledisable);
enabledisable.setOnCheckedChangeListener(this);
...................................
...................................

刚刚打开recyclerView时调用的OncheckedChanged方法:

@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
Log.v("ranjith","called oncheckedchanged");
MessengerRecord rec;
rec = dbHelper.getRecord(descview.getText().toString());
switch (buttonView.getId()) {
case R.id.enabledisable:
if (isChecked) {
rec.set_is_valid("Y");
dbHelper.updateRecord(rec);
}
}

在布局文件中:

<android.support.v7.widget.SwitchCompat
android:layout_marginRight="16dp"
android:layout_marginEnd="16dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:focusable="false"
android:id="@+id/enabledisable"
android:layout_alignRight="@+id/textview_to"
android:layout_alignEnd="@+id/textview_to"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"/>

最佳答案

奇怪的是,我们所有人都有这个问题,但谷歌却没有对这个简单问题的官方回答。

检查最简单:

buttonView.isPressed()

如果为真,则表示用户点击了 View 。

不需要全局变量。

关于android - onCheckedChanged 自动调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27641705/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com