zoukankan      html  css  js  c++  java
  • Android为TV端助力之解决setOnItemSelectedListener一进来就自动执行一次的问题

    我们经常会遇到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;
    }

    }

  • 相关阅读:
    浏览器内核
    gulp菜鸟级零基础详细教程
    Mysql自连接的一些用法
    ListView和Adapter数据适配器的简单介绍
    Android轮播图
    css-flex布局知识梳理
    JavaScript 复杂判断的更优雅写法
    团队合作前端书写习惯总结
    常见的HTTP报头(头参数)
    常见的HTTP状态码
  • 原文地址:https://www.cnblogs.com/xiaoxiaing/p/10627268.html
Copyright © 2011-2022 走看看