2012-02-21 5 views
2

アンドロイド&バンドルの違いは何か

private void compareThem(Bundle myBundle, Bundle arguments) { 
    Log.d("---myBundle==null: ", " " + (myBundle==null)); 
    Log.d("---arguments==null: ", " " + (arguments==null)); 

    if(myBundle!=null && arguments!=null) { 
    Log.d("---myBundle==arguments: ", " " + (myBundle==arguments)); 
    Log.d("---myBundle.equals(arguments): ", " " + (myBundle.equals(arguments))); 
    } 
} 

:myBundle &彼らは同じオブジェクトではありません、私の簡単なテストからgetArgumentsによって返さ1()

@Override 
public void onCreate(Bundle myBundle) { //on create() belonging to a Fragment 
    super.onCreate(myBundle); 
    // So myBundle vs getArguments() 
} 

は、でこれをテストしましたときどき私はfalse、true、false、falseを時々受け取る:false、false、false、false とにかく.. ??

答えて

1

バンドルがonCreate()(コードのmyBundle)に渡されたものは、いわゆるsavedInstanceStateです。 onSaveInstanceState()以降のバンドルのフラグメントからデータ(「状態」)を保存することができます。その後、このバンドルはonCreate()などの方法で利用できます。

getArguments()によって返されるバンドルは、フラグメントの呼び出し元から渡されたバンドルです。このバンドルはsetArguments()メソッドで提供されています。

関連する問題