这是我之前做过的事情,看起来与您想要完成的事情非常相似。
首先,您onItemClickListener
为您的ListView
. 这将处理标准列表项点击(即,在列表项内部但在您关注的内部视图区域之外的点击)。您可以在代码中的多个位置执行此操作,但这onCreate()
是一个常见的位置。
例子:
mListView.setOnItemClickListener( new OnItemClickListener() {
@Override
public void onItemClick( AdapterView<?> parent, View view, int position, long id ) {
// Handle standard list item tap
// ...
}
} );
然后,您可以onClickListener
在适配器的方法中声明内部视图所需的任何内容,getView()
以处理内部视图上的单击/点击事件。
例子:
@Override
public View getView( int position, View convertView, ViewGroup parent ) {
LinearLayout itemView;
// Inflate layout XML, etc.
// ...
// Find subviews in layout
ImageView innerView = (ImageView) itemView.findViewById( R.id.myInnerViewId );
// ...
// Set up onClickListener for inner view
innerView.setOnClickListener( new OnClickListener() {
@Override
public void onClick( View v ) {
// Handle inner view tap
// ...
}
} );
// ...
}