5

我有 GridView,其中项目是带有图像(ImageView)和标题(TextView)的视图。我想在这个 ImageView 上执行 onClick 操作,而不是在整个 GridView 项目上。如果我使用此代码:

gridView.setOnItemClickListener(new OnItemClickListener() {
  @Override
  public void onItemClick(AdapterView<?> parent, View view, int position,
      long id) {
    ImageView imageView = (ImageView) view.findViewById(R.id.image);

    imageView.setOnClickListener(new OnClickListener() {
      @Override
      public void onClick(View v) {
        // some operation
      }
    });
  }
});

只有第二次单击 ImageView 才能让我进行操作。如何通过第一次单击 GridView 对 ImageView 进行操作?

4

3 回答 3

3

当用户单击 gridview 时,您会在 imageview 中添加一个 onclicklistener,这就是为什么您只收到第二次点击的原因。在adaper中,当你创建imageview时,你必须编写image的onlicklistener

于 2013-07-11T13:47:42.350 回答
2

检查OnClickListener 不适用于 GridView 中的第一项

尝试 :

与其在您的 GridView 上设置 onClickListener,不如在您的getView()方法内部的 GridAdapter 内的 ImageView 本身上设置它。

于 2013-07-11T13:49:17.393 回答
0

您应该onClickListener为每个ImageView内部适配器的getView()方法进行设置。此外,setItemsCanFocus(boolean itemsCanFocus)在 ListView 上设置为 true。

于 2013-07-11T14:25:12.687 回答