android:布局中多个ImageView的一键式侦听器

android:布局中多个ImageView的一键式侦听器,android,android-layout,android-fragments,android-activity,android-imageview,Android,Android Layout,Android Fragments,Android Activity,Android Imageview,我有以下情况: 在布局中,我将ImageView水平和垂直对齐,如图所示 首先,应该使用哪种布局?相对的布局还是框架布局?布局中的ListView 另外,如何不为每个imageview编写setOnClickListener,而只编写一个click listener来获得单击的imageview?AGridView非常适合这样做。有关GridView的更多信息,请参见 至于你的onClickListener问题:没有简单的方法可以做到这一点,但你能做的是这样的: 使用包含每个ImageView

我有以下情况:

在布局中,我将ImageView水平和垂直对齐,如图所示

首先,应该使用哪种布局?相对的布局还是框架布局?布局中的ListView


另外,如何不为每个imageview编写setOnClickListener,而只编写一个click listener来获得单击的imageview?

A
GridView
非常适合这样做。有关GridView的更多信息,请参见

至于你的onClickListener问题:没有简单的方法可以做到这一点,但你能做的是这样的:

  • 使用包含每个ImageView id的数组,如下所示:

    public static final int[] IMAGE_VIEWS = {R.id.imageView1, R.id.imageView2, R.id.imageView3 /*etc*/}; //Make sure to list from the first imageview to the last image view in correct order
    
  • 定义onclick侦听器

    private View.OnClickListener imageViewListener = new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            for (int i = 0; i < IMAGE_VIEWS.length; i++) {
                if (v.getId() == IMAGE_VIEWS[i]) {
                    doSomethingWithImageViewClick(i); //if ImageView 4 was clicked, variable 'i' will be 3 (because arrays start at index = 0).
                }
            }
        }
    }
    

  • GridView可以实现此效果。我想您可以看看这个。

    在布局中使用“GridView”,并使用“setOnItemClickListener”处理单击事件

    您可以在下面的链接中找到更多详细信息
    .

    使用
    GridView
    并使用
    setOnItemClickListener
    来处理ClicksUp在我看来就像GridView一样well@SatyenUdeshi谢谢,我会标记你的答案正确,但也请在回答中提供此链接。这很有帮助,我还发布了一个回答,以便其他人可以参考,解决了我的问题
    final ImageView view1 = (ImageView) view.findViewById(R.id.imageView1);
    view1.setOnClickListener(imageViewListener);
    //etc