您好我在使用Picasso的gridView中显示了一些图像,当我尝试在全屏模式下打开每个图像(在onItemClickListener之后)(在新的活动中)它只显示我的gridView中的第一个图像,无论我点击的图像,是我的问题。 这是我的代码,我在gridView和OnItemClickListener中显示来自url的图像。
Picasso.with(ToolDescription.this)
.load(SaveSettings.ServerURL +"Images/"+ imagepath)
.into(imageView);
ls.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent intent = new Intent(ToolDescription.this, ImageFull.class);
intent.putExtra("imagepath", SaveSettings.ServerURL +"Images/"+ imagepath);
startActivity(intent);
}
});
return myView;
这是我的第二个活动(名为ImageFull),我想显示点击的图片:
ImageView imageView = (ImageView) findViewById(R.id.fullImage);
String imagepath = getIntent().getStringExtra("imagepath");
Picasso.with(ImageFull.this)
.load(imagepath)
.noFade()
.resize(800, 800)
.centerCrop()
.into(imageView);
答案 0 :(得分:0)
为每个imageview设置单独的单击侦听器,或使用int位置从gridview项目数组中提取正确的imagepath。
此链接有一个易于遵循的代码,正是您要执行的操作。使用该位置查找您要点击的元素以获取相应的图像网址
答案 1 :(得分:0)
看起来发生的事情是,每次ls.setOnItemClickListener()
返回时,您都会调用getView()
。
AdapterView.OnItemClickListener
是整个AdapterView
的单个侦听器,您打算通过使用position
参数来区分单击了哪个项。
我不确定imagepath
内getView()
来自哪里,但我认为它类似于String imagepath = getItem(position).getImagePath()
。如果是这种情况,您可以通过以下方式解决问题:
1)将ls.setOnItemClickListener()
移出getView()
...可能会移至onCreate()
或您设置GridView
。
2)改变
intent.putExtra("imagepath", SaveSettings.ServerURL +"Images/"+ imagepath);
到
String currentImagePath = getItem(position).getImagePath();
intent.putExtra("imagepath", SaveSettings.ServerURL +"Images/"+ currentImagePath);
可能会出现语法错误,因为我看不到你的其余代码,但希望这足以让你能够完成它们。