0

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

我有两个 display.xml 文件(一个在 layout 文件夹下,另一个在 layout-land 下)。layout 文件夹下的一个添加了 Portrait,另一个添加了 Landscape 类。

在方向更改时,我想将信息(图片编号和一些位图)从一个类发送到另一个类,这样我就不必再次获取所有位图,也可以显示正在显示的位图。

我发现可包裹的东西有点令人困惑。我尝试遵循this_example,但我注意到在 onRestoreInstance 中,Parcelable 的“mSuperState”为空,并且我得到一个 classCastException @“SavedState ss = (SavedState)state”。我试图传递的整数(图片编号)就在那里。我不确定我做错了什么。

4

2 回答 2

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();
于 2010-11-09T20:48:51.170 回答
0

不确定这是否是您正在寻找的东西,但我的东西总是在使用 onCreate(Bundle savedInstanceState) 改变方向时起作用。我的是编辑文本框中的所有文本,所以我不确定它对你有用。

还可以在“配置更改期间保持状态信息” http://www.devx.com/wireless/Article/40792/1954下查看这一点

于 2010-11-09T20:16:14.200 回答