1

許多imageviews點擊收聽我有以下情形:的Android:佈局

enter image description here

在佈局中,如圖像我已經imageviews水平和垂直對齊。

首先,哪種佈局應該用於此目的? RelativeLayout或FrameLayout? ListView裏面的佈局?

此外,我不怎麼寫每個圖像視圖的setOnClickListener,我怎麼能只寫一個點擊偵聽器來獲取點擊的圖像視圖?

+3

使用'GridView'並使用'setOnItemClickListener'來處理點擊 –

+0

yup看起來像grideview給我以及 – meda

+0

@SatyenUdeshi謝謝,我會標記你的答案是正確的,但也請提供此鏈接http://developer.android .com/intl/ko/guide/topics/ui/layout/gridview.html在回答 – user5155835

回答

0

使用在佈局「的GridView」和使用「setOnItemClickListener」來處理click事件,

您可以在下面的鏈接 GridView瞭解詳情。

2

A GridView是完美的。有關GridView的更多信息,請參閱here

至於你onClickListener的問題:有沒有簡單的方法來做到這一點,但你可以做的是這樣的:

  1. 有一個包含每個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 
    
  2. 定義一個onClickListener

    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). 
          } 
         } 
        } 
    } 
    
  3. 設置所有imageViews的onClickListeners:

    final ImageView view1 = (ImageView) view.findViewById(R.id.imageView1); 
    view1.setOnClickListener(imageViewListener); 
    //etc 
    
+0

http://developer.android.com/intl/ko/guide/topics/ui/layout/gridview.html解決了我的問題 – user5155835

0

GridView的可以達到的效果。我想你可以看看這個Grid View