2011-12-22 5 views
0

「出力」パラメータがスーパークラスに送信されますが、その直後に「putSerializable」が追加されます:呼び出された直後に「変更」しても問題はありませんスーパークラス?プロジェクトが更新された場合、このアプリケーションにserializableを追加したことをアプリがどのように知るのでしょうか? (なぜ我々はシリアライズ最初に入れていない、と我々はスーパークラスを呼び出す?)putSerializableをonSaveInstanceStateに追加

@Override 
    protected void onSaveInstanceState(Bundle outState) { 
     super.onSaveInstanceState(outState); 
     outState.putSerializable(NotesDbAdapter.KEY_ROWID, mRowId); 
    } 

と私たちのonCreateメソッド:

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     ... 
     mRowId = (savedInstanceState == null) ? null : (Long) savedInstanceState.getSerializable(NotesDbAdapter.KEY_ROWID); 

おかげ

答えて

1

あなたがいずれかを実行することができます。

outStateは参照によってスーパーに渡されるため、それ以降の変更はオブジェクトに影響します。

それは最高のここで説明しています:

http://www.yoda.arachsys.com/java/passing.html

+0

OKうーん、あなたの迅速な答えブランデルのためのおかげで理にかなっています! – Paul

関連する問題