Android ListView默认选中第一项或第N项

版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/qq_28822993/article/details/53893187

大体上从查阅的资料和自己的实践一共可以分为以下几种方法:

一:重写Adapter 在getView里进行自己的操作(选中,变色等等)

class MyAdapter extends BaseAdapter {

······
@Override
        public View getView(int position, View convertView, ViewGroup parent) {

       //在这里做文章
            return myGetView(position, convertView, parent);
        }

······
}

但是问题也随之而来,如果你在getView里变色了,你就要在下次点击的时候把初始样式清除掉,所以我用了另一种办法解决。


二:利用onWindowFocusChanged和一个全局变量来控制

private boolean c_init_menufocus = false;
private ListView menu_list = null;

@Override
public void onWindowFocusChanged(boolean hasFocus) {
    if (hasFocus && !c_init_menufocus ) {
        menu_list .performItemClick(menu_list .getChildAt(0), 0, menu_list .getItemIdAtPosition(0));
        c_init_menufocus  = true;
    }
}


结束:就这样通过一个全局变量开关和onWindowFocusChanged来做一个模拟的点击事件,代码中实现的是默认选中第一项(0),你可以自定义选中任意项,个人认为这个方法非常好用。


------初学安卓,不足之处望以指正。   


阅读更多
换一批

没有更多推荐了,返回首页