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