解决:特殊应用场景下--Android 在list view 中使用switch 遇到的switch 重置的问题

解决:特殊应用场景下--Android 在list view 中使用switch 遇到的switch 重置的问题
摘要由CSDN通过智能技术生成

首先说一下应用场景和问题:

项目需要加载一个listview,每个list item中有一个switch 按钮。list item中的switch 在初始化时,需要根据数据对应的boolean 值来设置switch的开关状态。我调用的是setChecked()来设置状态。switch 的开关侦听函数 为修改一个之前初始化的boolean值。

这样遇到了一个问题,就是当设置为On的switch在滑出界面的时候,再将其滑入屏幕,switch有可能自动就变为关,我查看那个依据的boolean值,也被改了。

我明明没有点击按钮,为什么switch自己就换过去了???


发现问题:

百思不得其解之后,我在工程中寻找修改那个Boolean值得代码,只有在switch的监听函数中才发现有!

只能 在修改Boolean 值处加上主动throw Exception,并try catch代码  的方式获取前前后后的调用栈。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
在微信小程序使用`data-`属性可以在`wx:for`场景下传递事件参数。具体实现方法如下: 1. 在`wx:for`使用`template`标签定义模板。 2. 在模板定义使用`data-`属性传递需要传递的事件参数。 ```html <template name="list-item"> <view class="list-item" data-index="{{index}}" data-item="{{item}}" bindtap="onListItemTap"> <text>{{item}}</text> </view> </template> ``` 在上面的代码,我们在模板定义使用了`data-index`和`data-item`两个`data-`属性,分别传递了列表项的索引和值。 3. 在`wx:for`使用模板并传入数据。 ```html <view class="list"> <template wx:for="{{list}}" wx:for-item="item"> <template is="list-item" data="{{index: {{index}}, item: {{item}}}}"></template> </template> </view> ``` 在上面的代码,我们使用`wx:for`循环渲染`list`数组,然后在循环体使用`template`标签引入之前定义的模板,并通过`data`属性将需要传递的事件参数传入。 4. 在事件处理函数获取传递的参数。 ```javascript Page({ onListItemTap: function (event) { const index = event.currentTarget.dataset.index; const item = event.currentTarget.dataset.item; console.log(`点击了列表项${index},值为${item}`); }, }); ``` 在上面的代码,我们在事件处理函数通过`event.currentTarget.dataset`获取到传递的`data-`属性,然后获取到需要的参数值。 至此,在`wx:for`场景使用`data-`属性传递事件参数的方法就介绍完了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值