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肯定也有。沒去試過。遇到了可以用這方法實驗一下。

發佈了29 篇原創文章 · 獲贊 40 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章