在Android上获取一张图片链接到GridView中的网页?

在Android上获取一张图片链接到GridView中的网页?,android,image,gridview,hyperlink,Android,Image,Gridview,Hyperlink,我有一个GridView布局的应用程序,只有一个图像用于测试,直到我明白了下一步。我已经把一切都设置好了,但我不知道如何实现一个设计,点击图像a、B、C、D等会导致用户(我)登陆我指定的网页。我需要每个图像链接到不同的位置,我非常感谢您在我的代码中帮助我实现这一点: public class ImageAdapter extends BaseAdapter { private Context mContext; public ImageAdapter(Context c) {

我有一个GridView布局的应用程序,只有一个图像用于测试,直到我明白了下一步。我已经把一切都设置好了,但我不知道如何实现一个设计,点击图像a、B、C、D等会导致用户(我)登陆我指定的网页。我需要每个图像链接到不同的位置,我非常感谢您在我的代码中帮助我实现这一点:

public class ImageAdapter extends BaseAdapter {
    private Context mContext;

    public ImageAdapter(Context c) {
        mContext = c;
    }

    public int getCount() {
        return mThumbIds.length;
    }

    public Object getItem(int position) {
        return null;
    }

    public long getItemId(int position) {
        return 0;
    }

    // create new ImageView for each item
    public View getView(int position, View convertView, ViewGroup parent) {
        ImageView imageView;

        if (convertView == null) {
            imageView = new ImageView(mContext);
            imageView.setLayoutParams(new GridView.LayoutParams(150, 150));
            imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
            imageView.setPadding(5, 5, 5, 5);
        } 

        else {
            imageView = (ImageView) convertView;
        }

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

    // references to images
    private Integer[] mThumbIds = {
        R.drawable.A, R.drawable.B,
        R.drawable.C, R.drawable.D,
        R.drawable.E, R.drawable.F,
        R.drawable.G, R.drawable.H,
    };
}
在适配器中使用getItemId()来选择要转到的URL(只需返回位置)。就像你有mThumbIds一样,只要有一个并行数组来保存匹配的URL,这样当点击一个图像时,它对应的URL就可以在同一个索引上轻松访问。

实现这一点的“零工作”方法就是简单地启动一个意图,从一个监听器在设备浏览器中打开URL。比如:

//Obtain a reference to the view in your layout somehow...I chose findViewById()
GridView grid = (GridView)findViewById(R.id.peters_grid);
grid.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
        //"position" is the location of the image clicked
        String url = arrayOfUrls[position];
        Intent intent = new Intent(Intent.ACTION_VIEW);
        intent.setData(Uri.parse(url));
        startActivity(intent);
    }
});
//以某种方式获取对布局中视图的引用…我选择了findViewById()
GridView网格=(GridView)findViewById(R.id.peters_网格);
grid.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父视图、视图v、整型位置、长id){
//“位置”是单击图像的位置
字符串url=arrayOfUrls[位置];
意向意向=新意向(意向.行动\视图);
setData(Uri.parse(url));
星触觉(意向);
}
});
从字符串数组中获取每个位置的正确URL。这只是获取正确URL的一个想法……您可以通过一百万种不同的方式构造正确的URL,但关键是将其传递给
Intent
,然后启动它

这种方法的“小工作”版本是在这个或另一个
活动中创建
WebView
,这样您就可以加载网页并停留在应用程序代码中。如果
WebView
位于第二个
活动中,最好使用意图将URL字符串从第一个
活动传递到第二个


希望有帮助

你能举一个像google.com这样的例子吗?这是我第一次使用grid view,我今天刚刚学会了它,它仍然在我脑海中回荡。谢谢,你有关于如何制作WebView的好链接吗,我更愿意将它全部保存在应用程序中,而不是像我现在这样启动浏览器。试试SDK文档中的using WebView文章,它还有一个指向示例项目的链接: