1

如何获取根据请求提供给此方法的包(Bundle outState)?

@Override
protected void onSaveInstanceState(***Bundle outState***) {
    super.onSaveInstanceState(outState);

    // Only if you need to restore open/close state when
    // the orientation is changed
    if (adapter != null) {
        adapter.saveStates(outState);
    }
}
4

3 回答 3

0

在 Bundle 实例中,您可以传递数据并将其取回 onCreate() 方法。喜欢以下

outState.putString("key1", "data1");
outState.putBoolean("key2", "data2");
outState.putInt("key3", "data3");

并在 onCreate 中得到它,如下所示

if (savedInstanceState != null){
            data_1 =  savedInstanceState.getString("keys1");
            data_2 =  savedInstanceState.getBoolean("keys2");
            data_3 =  savedInstanceState.getInt("keys3");

}
于 2017-01-03T12:11:57.933 回答
0

它是在您的活动Bundle中的方法中发送的。OnCreate

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if (savedInstanceState != null) {
        savedInstanceState.getString("bla");
    }
}

请注意,您必须检查 null,因为第一次创建活动时它将为 null,因为之前没有状态。

有关更多信息,请参阅https://developer.android.com/guide/components/activities/activity-lifecycle.html#oncreate

于 2017-01-03T12:08:30.940 回答
0

您可以使用以下方法取回已保存的捆绑包:

@Override 
public void onRestoreInstanceState(Bundle savedInstanceState) {
// get your saved bundles back here
} 

只需参考此开发人员页面,您就会对此有清晰的了解

于 2017-01-03T12:08:52.387 回答