博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android为TV端助力之解决setOnItemSelectedListener一进来就自动执行一次的问题
阅读量:5338 次
发布时间:2019-06-15

本文共 1015 字,大约阅读时间需要 3 分钟。

我们经常会遇到listview或者其他view设置setOnItemSelectedListener监听时,一加载界面,setOnItemSelectedListener监听就会自动执行一遍,导致你第一次移动上去的时候setOnItemSelectedListener监听就不会走的

所以我们采用自定义listview,主动来调用setOnItemSelectedListener监听回调,代码如下

public class MyListView extends ListView {
private int lastPosition = 0; public MyListView(Context context) {
super(context); } public MyListView(Context context, AttributeSet attrs) {
super(context, attrs); } public MyListView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr); } // 一个 item 选中的时候,总是会触发 setSelection 方法 // 所以在这个方法中,我们记录并检查上一次的selection position 就行了,如果是相同的,手动调用监听即可 @Override public void setSelection(int position) {
super.setSelection(position); if (position == lastPosition){
getOnItemSelectedListener().onItemSelected(this,getSelectedView,position,0);
}         lastPosition = position;     } }

转载于:https://www.cnblogs.com/xiaoxiaing/p/10627268.html

你可能感兴趣的文章
五笔输入法按两下回车问题解决方法
查看>>
构造函数为什么不能声明为虚函数?析构函数为什么要声明为虚函数
查看>>
周末泡论坛关键词
查看>>
HandlerInterceptor拦截器
查看>>
JS高级(四)--ES6(常用的、重点的)
查看>>
【转】Android APK反编译就这么简单 详解(附图)
查看>>
.net core 日常学习第一篇
查看>>
poj3928pingpong区间和
查看>>
node——try-catch与异步操作
查看>>
cocos2dx中常见的类及类继承关系
查看>>
cocos2dx中的设计分辨率与屏幕适配策略
查看>>
GIt 解决冲突
查看>>
MySQL千万级数据分区存储及查询优化
查看>>
QWaitConditioin的思考1
查看>>
TFS 测试用例导入、导出工具
查看>>
《对不队》团队项目软件系统设计改进
查看>>
GitHub+hexo搭建个人博客
查看>>
【Hive】JDBC操作
查看>>
YII框架安装过程总结
查看>>
HDOJ(HDU) 1862 EXCEL排序(类对象的快排)
查看>>