Android 代码模拟ListView item的点击事件的两种方式

在项目里面有时候需要模拟ListView的item的点击事件(就是不用手去点击,直接在代码里面实现),发现了两种方式如下:

第一种:
适合多个方式来响应点击事件的(比如:可以点击某一行。可以接收了一个广播来触发点击一行。就是多种方式走同一个代码块:就像下方的//do someThings),那么我们需要先给listview设置一个listener。

listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView parent, View view, int position, long id) {
            //do someThings
        });

接下来其他需要走同一个流程的地方获取这个listener,然后通过这个listener.onItemClick();方法就能执行同一个代码块了(//do someThings);方法里面的四个参数,分别是(parentView,view,click_position,0)

AdapterView.OnItemClickListener onItemClickListener = listview.getOnItemClickListener();
if(onItemClickListener!=null){
    onItemClickListener.onItemClick(listview,null,position,0);
}

第二种:
就是纯粹的想用代码实现点击了。其实原理都都差不多,listview自己有一个方法performItemClick();我们只需要调用这个方法就好了。

listView.performItemClick(listView.getChildAt(click_position), click_position, listView.getItemIdAtPosition(click_position));

或者

listView.performItemClick(listView.getAdapter().getView(click_position, null, null), click_position, listView.getItemIdAtPosition(click_position));

感觉这个方法Gridview肯定也有。没去试过。遇到了可以用这方法实验一下。

你可能感兴趣的:(实用技巧)