ListView 的performItemClick()方法说明
今天用到ListView 的performItemClick()方法,下面讲一下个人对这个方法参数的理解
首先,这个方法是为了模拟用户点击而存在的,我们看一下这个方法performItemClick(View view, int position, long id),有三个参数view、position,id。第二个参数position很好理解,就是要点击的item,至于第一个参数view,和第三个参数id,我查看了android的源码:
/**
* Call the OnItemClickListener, if it is defined. Performs all normal
* actions associated with clicking: reporting accessibility event, playing
* a sound, etc.
*
* @param view The view within the AdapterView that was clicked.
* @param position The position of the view in the adapter.
* @param id The row id of the item that was clicked.
* @return True if there was an assigned OnItemClickListener that was
* called, false otherwise is returned.
*/
public boolean performItemClick(View view, int position, long id) {
if (mOnItemClickListener != null) {
playSoundEffect(SoundEffectConstants.CLICK);
if (view != null) {
view.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_CLICKED);
}
mOnItemClickListener.onItemClick(this, view, position, id);
return true;
}
return false;
}
看他的注释可以理解为,第一个参数view就是你要点击的item中的布局,id就是这个view中某个控件的id,猜想可以根据这两个参数view,id,点击到item中的控件。假如item中有一个button那么传入button的id就可以实现对button的模拟点击效果。我们可以对view参数传null,id可以传0,
performItemClick(null,0, 0);
再看mOnItemClickListener.onItemClick(this, view, position, id);这句可以发现最后调用的是我们为listview设置的点击事件。
对应下边方法中后边三个参数
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// TODO 自动生成的方法
}
也正好帮助理解onItemClick()方法参数的意义