2010-11-17 39 views
0

我在切换活动时遇到了上述问题。在第一个活动中,我有一个GalleryView显示我所有的图像,一个ImageView显示从图库中选择的图像。现在我想切换到下一个活动,并在第二个活动的屏幕上保留来自ImageView的相同图像。下面是我如何显示我的图像:切换活动后显示图像的问题Android

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

我不确定你在这里试图完成什么。你想保存活动的状态与画廊(应该Android自动执行,我想),或者你想要在第二个活动中显示从ImageView中选择的图像?如果是后者,则只需将imageID(ResourceId或数组位置)作为Extra Data放入您用来调用第二个Activity的Intent中即可。

希望我不完全错过你的观点。

+0

我想做第二个选择,在第二个活动中显示来自ImageView的选定图像,我做了你对putExtra所说的内容,并且它美化了它。非常感谢;) – 2010-11-18 09:48:11

+0

很高兴听到。你能接受一个答案吗?谢谢! – wonne 2010-11-18 16:06:33

0

另一种选择是以Resource ID或URI的形式存储'选定的图像',或者即使只是保留imageView对象(如果您真的想要的话),在您的Application Instance中 - 这是在活动之间维护的。

只需创建一个扩展应用程序类的类,并使其静态对象,这样就可以随时调用的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的意图也会起作用。

+0

使用静态对于android来说不是一个好的做法。要实现一个单身人士或其他活动之间共享数据,最好创建一个服务。或者您可以使用系统服务,例如内容提供商。 – ackio 2010-11-18 03:54:58

+0

我也会尝试这种方法,因为我对Android中的sigleton感兴趣。感谢您的建议:页 – 2010-11-18 09:52:35