2010-08-07 52 views
0

我試圖使圖像可點擊,以便當它們被按下時它會將用戶發送到另一個頁面或鏈接。Android:在Gridview中如何使圖像可點擊

我該如何實現這一目標?目前GridView中的每一行都有2個Buttons。它如何知道GridView中的哪個項目被點擊,以便它執行特定於被點擊項目的特定操作。

感謝您的幫助!

這是我的形象適配器類:

// create a new ImageView for each item referenced by the Adapter 
public View getView(int position, View convertView, ViewGroup parent) { 
    ImageView imageView; 
    if (convertView == null) { // if it's not recycled, initialize some attributes 
     imageView = new ImageView(mContext); 
     imageView.setAdjustViewBounds(true); 
     // imageView.setScaleType(ImageView.ScaleType.FIT_CENTER); 
     imageView.setPadding(4, 8, 4, 8); 
    } else { 
     imageView = (ImageView) convertView; 
    } 

    imageView.setImageResource(mThumbIds[position]); 
    return imageView; 
} 

// references to our images 
private Integer[] mThumbIds = { 
     R.drawable.menu_about,R.drawable.menu_episodes 
    }; 
} 

回答

0

你可能要考慮使用的ImageButton類爲你做這個。它的按鈕,但沒有一個無聊的灰色漸變,而是在那裏放置一個圖像! Andriod ImageButton Docs 從那裏你可以像使用普通按鈕一樣自由使用點擊監聽器。

2

只需一個監聽器添加到GridView

GridView gridView = (GridView) findViewById(R.id.gridview); 
    gridView.setAdapter(new ImageAdapter()); 

    gridView.setOnItemClickListener(new OnItemClickListener() 
    { 
     public void onItemClick(AdapterView parent, 
     View v, int position, long id) 
     { 
      data.aktueltBilledeNr = position; 
      Toast.makeText(getBaseContext(), "Viser billede " + (position + 1), Toast.LENGTH_SHORT).show(); 
      finish(); 
      //startActivity(new Intent(Resultatsoversigt_akt.this, Teoriproeveaktivitet2.class)); 
     } 
    }); 
0

首先是找到按鈕(以下圖片)的位置,然後用開關情況下會藉此你說什麼都...

GridView gridView = (GridView) findViewById(R.id.gridview);  
gridView.setAdapter(new ImageAdapter());  
gridView.setOnItemClickListener(new OnItemClickListener() {  
    public void onItemClick(AdapterView parent,View v,int position,long  id)    { 
     switch(position) { 
     case 0: 
      Intent intent=new Intent(this,targer.class); 
      StartActivity(intent); 
      break; 
     case 1: 
      break;  
     . 
     . 
     . 

     default: 
      break; 
     } 
    } 
});