2010-11-09 152 views
0

在我的Android应用程序中,我有两个自定义视图类 - PortraitClass和LandscapeClass。他们都做同样的事情。在运行应用程序时,视图类从SDCard获取一些图片,然后进行处理(偏斜等)并显示它们。两个类别之间的唯一区别在于屏幕上的图片布局略有不同。Android:在视图之间传递数据

我有两个display.xml文件(一个在layout文件夹下,另一个在layout-land下)。布局文件夹下的一个添加肖像,另一个添加景观类。

在方向更改上,我想从一个类发送信息(图片号码和几个位图)到另一个类,所以我不必再次获取所有位图,并显示正在显示的图片。

我觉得可以理解的东西有点混乱。我尝试了以下this_example,但我注意到在onRestoreInstance中,Parcelable对于“mSuperState”为null,并且我得到了classCastException @“SavedState ss =(SavedState)状态”。我试图通过的整数(图片号码)在那里。我不确定我做错了什么。

回答

1

你可以在应用程序类使用全局单。例如一个“AssetManager”可以在这里找到:

public class YourApplication extends Application { 

    public AssetManager assetManager = new AssetManager(); 

    @Override 
    public void onCreate() 
    { 
     super.onCreate(); 
    } 
} 

然后,您可以从另一个活动调用它:

YourApplication application = ((YourApplication) this.getApplication()); 
application.assetManager.someFunction(); 
+0

谢谢,它像一个魅力工作! – Manny 2011-01-14 18:47:06

0

不知道这是你在找什么,但我的东西总是在onCreate(Bundle savedInstanceState)方向改变。我的所有文本都是编辑文本框,所以我不确定它是如何为你工作的。

还检查了这一点有关中途下下来“应坚持国家信息结构变更时” http://www.devx.com/wireless/Article/40792/1954

+0

谢谢,我试图做同样的,而是通过一个视图类,而不是活动。我认为我的问题是,super.onSaveInstanceState返回null,我不知道为什么。 – Manny 2010-11-09 23:34:13

相关问题