Android:在Gridview中如何使图像可点击

时间:2010-08-07 01:39:59

标签: android image gridview android-image

我正在尝试使图像可以点击,这样当按下它们时,它会将用户发送到另一个页面或链接。

我怎么能做到这一点?目前,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
  };
 }

3 个答案:

答案 0 :(得分: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));
       }
    });

答案 1 :(得分:0)

您可能需要考虑使用ImageButton类为您执行此操作。它是一个按钮,而不是有一个无聊的灰色渐变,而是在那里放置一个图像! Andriod ImageButton Docs 从那里你可以像使用普通按钮一样自由使用点击监听器。

答案 2 :(得分:0)

首先找到按钮的位置(Here Image),然后使用开关盒来表达你所说的......

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;
        }
    }
});