ListView默认点击Item同时触发onItemClick 事件 —— 虚拟点击Item

        About 需求:

        listview+checkbox 实现 单选,如果 data 的size =1,就默认选中该item。

        What should i do ?

        最初的想法是 checkbox.setChecked(true) 就可以了,这种做法 从界面上看,checkbox 的确是勾选中了,但是并没有触发ItemClick方法,更不能执行内部方法体了。

        How to do?

        直接进行判断,在size=1的时候把 ItemClick内的方法提出来不就好了,这种方法虽然可以实现,但是listview肯定有更好的方法来实现 不手动点击item,实现模拟点击item.

        It's it——performItemClick()
        请看API截图

        方法描述大致意思就是调用OnItemClickListener,执行与单击相关的所有正常操作。

        参数有三:

            view:点击的item布局;//可以通过listView.getAdapter().getView(0, null, null)获取

            position: 点击的item的position;

            id:点击的item的id;//可以通过listView.getAdapter().getItemId(0) 获取

        How to use?

listView.setOnItemClickListener(new OnItemClickListener() {

    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

	Toast.makeToast("u click"+position,0).show();

    }
});
	//虚拟点击,若只有一个item ,则默认选中
if (dataList.size()==1) {
    listView.performItemClick(listView.getAdapter().getView(0, null, null), 0, listView.getAdapter().getItemId(0));
}

    注:此方法只有在setOnItemClickListener之后调用才会执行此方法。

-------------------------------------------------------THE END--------------------------------------------------------

猜你喜欢

转载自blog.csdn.net/sinat_33248260/article/details/80257708