Extending AdapterView

老子叫甜甜 提交于 2019-11-30 08:29:46

If you take a look into AdapterView's sources, you'll see that the OnItemClickListener gets invoked in a method, called performItemClick:

public boolean performItemClick(View view, int position, long id) {
    if (mOnItemClickListener != null) {
        // ...
        mOnItemClickListener.onItemClick(this, view, position, id);
        return true;
    }
    return false;
}

However, if you search the AdapterView source for where this method is used, you'll see that it isn't called anywhere!

Indeed, if you check the source of the Gallery for example, you'll see that the performItemClick is called within the handling of the onSingleTapUp or onKeyUp events.

If you want to use that, you have to detect when a user clicks somewhere and call performItemClick on your own.

Instead of extending the AdapterView, why dont you try with the baseAdapter. When you costumize your Adapter, it has oen method given below.

getView(int position, View convertView,ViewGroup group) 

in above method you can access the layout for each list item of the listview and here you can set the all supported events for each control.

Mark Gilchrist

I am playing around with something similar and i am using onItem*Selected*Listener which may be more what you are looking for.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!