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;
    }

    }

  • 相关阅读:
    Linux 性能优化--理解 CPU 使用率和平均负载
    sqlalchemy ORM
    redis缓存数据库
    基于CentOS安装FTP服务器
    python3之platform模块
    paramiko模块
    shelve模块
    Vue入门---属性、style和class绑定方法
    Vue入门---事件与方法详解
    Vue入门---常用指令详解
  • 原文地址:https://www.cnblogs.com/xiaoxiaing/p/10627268.html
Copyright © 2011-2022 走看看