繁体   English   中英

内部视图上的自定义listview onclicklistener

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM