[英]Custom listview onclicklistener on inner view
我目前创建一个需要自定义列表视图的应用程序。 我的listview的一切都很好,但是现在我很想知道如何将onClickListener设置为在list_row.xml中定义的视图。 我只希望整个项目以及这一内部视图上的onclicklistener。 我附上一张图片来演示我的问题,因为很难描述>。<图片(投递箱): https : //www.dropbox.com/s/72xdxuwz47vl7s5/problem.png
我需要一个在单击视图时被调用的函数[我的问题]指示。 它是装满图像的ImageView。
要在每一行中设置OnClickListener,只需扩展当前的Adapter并覆盖getView()
方法。 您可以在其中定义通常的特定侦听器。
Romain Guy在本Google Talk中对此进行了详细讨论。
这是我之前所做的事情,看起来与您想要完成的工作非常相似。
首先,为ListView
声明一个onItemClickListener
。 这将处理标准列表项的拍子(即,在列表项内部但在您关注的内部视图区域之外的拍子)。 您可以在代码的多个位置执行此操作,但是onCreate()
是常见的操作。
例:
mListView.setOnItemClickListener( new OnItemClickListener() {
@Override
public void onItemClick( AdapterView<?> parent, View view, int position, long id ) {
// Handle standard list item tap
// ...
}
} );
然后,您可以在适配器的getView()
方法中声明用于内部视图所需的任何onClickListener
以处理内部视图上的click / tap事件。
例:
@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
// ...
}
} );
// ...
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.