2012-04-30 16 views
0

beanSourceのオブジェクトをonSavedInstanceに保存し、savedInstanceStateをnullとしてチェックしてonCreateに戻す方法を知りません。Android:データをonSavedInstanceに保存する

これまでのところ、私は値を取得/保存するいずれかのことができ、このコードをしようとしなくてきた: -

public class BookActivity extends Activity{ 

private ArrayList<Bitmap> bitmaps = null; 
private ArrayList<Book> bookData = null; //Book is the bean class 
private TextView bookTitle = null; 
private ArrayList<Feature> bookIds = null; // Another bean class 

@Override 
public void onSaveInstanceState(Bundle savedInstanceState) { 
    savedInstanceState.putSerializable("bookThumb", bookData); 
    savedInstanceState.putSerializable("bookBitmaps", bitmaps); 
    savedInstanceState.putSerializable("featureBook", bookIds); 
    super.onSaveInstanceState(savedInstanceState); 
} 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.penguin_main); 

    if(savedInstanceState!=null){ 
    bookData = (ArrayList<String>) savedInstanceState.getSerializable("bookThumb"); 
    bookData = (ArrayList<String>) savedInstanceState.getSerializable("bookThumb"); 
    bookData = (ArrayList<String>) savedInstanceState.getSerializable("bookThumb"); 
    } 
    else{ 
     Toast msg = Toast.makeText(getApplicationContext(), "Values Not Restored!!!", Toast.LENGTH_LONG); 
     msg.setGravity(Gravity.CENTER, msg.getXOffset()/2, msg.getYOffset()/2); 
     msg.show(); 
     } 
} 

}

私はビットマップやブックのオブジェクトを保存するために何をすべきそれで、オリエンテーションの変更についてクラスの新しいインスタンスを作ることはありませんか?あなたはParcelableのArrayListとして

savedInstanceState.putParcelableArrayList("bookThumb", bookData); 
savedInstanceState.putParcelableArrayList("bookBitmaps", bitmaps); 
savedInstanceState.putParcelableArrayList("featureBook", bookIds); 

あなたBookFeatureクラスを保存することができ

答えて

2

はいえ、仕事にこのためParcelableを実装する必要があります。ビットマップは既にパーセルクラスです

+0

ありがとう、私はこれを試して、それが私のために働くかどうかをお知らせします。 –

+0

アトラス、カスタムクラスを分割可能にするためにネットを検索しなくてはなりませんが、私は欲しかったものを手に入れました。ありがとう@dymmeh !!! –

関連する問題