在我的Android应用中,我有两个自定义视图类 - PortraitClass和LandscapeClass。他们都做同样的事情。在运行应用程序时,视图类从SD卡中获取一些图片,然后进行操作(倾斜等)并显示它们。两个类之间的唯一区别是图片的布局在屏幕上略有不同。
我有两个display.xml文件(一个位于布局文件夹下,另一个位于layout-land下)。布局文件夹下的一个添加了Portrait,另一个添加了Landscape类。
在方向更改时,我想将信息(图片编号和几个位图)从一个类发送到另一个类,因此我不必再次获取所有位图,以便显示正在显示的位图。
我发现这种可耻的东西有点令人困惑。我试过跟this_example,但我注意到在onRestoreInstance中,Parcelable对于“mSuperState”为空,我得到一个classCastException @“SavedState ss =(SavedState)state”。我试图通过的整数(图片编号)就在那里。我不确定我做错了什么。
答案 0 :(得分:1)
您可以在Application类中使用全局单例。例如,“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();
答案 1 :(得分:0)
不确定这是否是您正在寻找的东西,但我的东西总是适用于onCreate(Bundle savedInstanceState)的方向更改。我是编辑文本框中的所有文本,但我不确定它对你有用。
同样在“配置更改期间保持状态信息”中的中间检查 http://www.devx.com/wireless/Article/40792/1954