切换我的活动时遇到上述问题。在第一个活动中,我有一个GalleryView显示我的所有图像,ImageView显示从库中选择的图像。现在我想切换到下一个活动,并在第二个活动中保持屏幕上ImageView的相同图像。以下是我展示图片的方式:
Integer[] imageIDs = {R.drawable.img1, R.drawable.img2, R.drawable.img3};
Gallery gallery = (Gallery) findViewById(R.id.gallery1);
gallery.setAdapter(new ImageAdapter(this));
gallery.setOnItemClickListener(new OnItemClickListener()
{
@SuppressWarnings("rawtypes")
public void onItemClick(AdapterView parent, View v, int position, long id)
{
ImageView imageView = (ImageView) findViewById(R.id.image1);
imageView.setImageResource(imageIDs[position]);
}
});
在转换的那一刻,是否有像id或者什么东西在屏幕上说什么?我怎么能做到这一点?
提前致谢
答案 0 :(得分:0)
我不确定你要在这里完成什么。你想用图库保存活动状态(我认为这应该是Android自动执行)还是你想在第二个活动中从ImageView显示所选图像?如果你想做的是后者,只需将imageID(ResourceId或数组位置)作为额外数据放入你用来调用第二个Activity的Intent中。
希望我不会完全忽视你的观点。
答案 1 :(得分:0)
另一种选择是以资源ID或URI的形式存储“选定的图像”,或者甚至只是保留imageView对象(如果你真的想要),在你的Application Instance中 - 这是在活动之间保持的
只需创建一个扩展Application类的类,并使其成为一个静态对象,这样就可以随时调用getInstance()
public class MyApplication extends Application {
private static MyApplication singleton;
private Uri selectedImage;
public static MyApplication getInstance() {
return singleton;
}
public void setSelectedImage(Uri uri) { selectedImage = uri; }
public Uri getSelectedImage() { return selectedImage; }
}
这适用于您的各种活动。但正如wonne所说,将信息作为意图中的EXTRA也可以使用。