0

私の Android アプリには、PortraitClass と LandscapeClass の 2 つのカスタム ビュー クラスがあります。どちらも同じことをします。アプリを実行すると、ビュー クラスは SDCard からいくつかの画像を取得し、操作 (スキューなど) して表示します。2 つのクラスの唯一の違いは、画面上の画像のレイアウトがわずかに異なることです。

2 つの display.xml ファイルがあります (1 つはレイアウト フォルダーの下に、もう 1 つはレイアウト ランドの下にあります)。レイアウト フォルダーの下にある 1 つは Portrait を追加し、もう 1 つは Landscape クラスを追加します。

方向の変更時に、あるクラスから別のクラスに情報 (画像番号といくつかのビットマップ) を送信して、すべてのビットマップを再度フェッチする必要がないようにし、表示されていたものを表示したいと考えています。

小包化可能なものはちょっと混乱しています。this_exampleに従ってみましたが、onRestoreInstance で、Parcelable の "mSuperState" が null であり、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 に答える