我的应用程序使用一个活动和多个片段,扩展AppCompatActivity的活动会扩展一个xml文件,该文件中包含一个LinearLayout 其他ViewGroups,这个LinearLayout的目的是保持3个按钮,并非所有按钮在开始时都可见。
在代码中,我更改了LinearLayout和的视图 一些按钮的视图和文本取决于当前片段中采取的操作。然而,当他们的状态不维持时 按下主页按键后,活动将被重新处理。 每次在SharedPreferences中获取时,保存每个按钮的可见性和文本都太麻烦,所以我尝试了下面的代码但是失败了。
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (mMainButtons_LL != null) {
mMainButtons_LL = (LinearLayout) savedInstanceState.getSerializable("mainButtons");
} else {
mMainButtons_LL = (LinearLayout) findViewById(R.id.main_buttons_LL);
}
}
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putSerializable("mainButtons", (Serializable) mMainButtons_LL);
}
答案 0 :(得分:0)
将您的代码更改为以下内容:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.id.your_layout); // << replace your layout id here
mMainButtons_LL = (LinearLayout) findViewById(R.id.main_buttons_LL);
if (savedInstanceState != null) {
mMainButtons_LL.setVisibility(savedInstanceState.getInt("visibility"));
mMainButtons_LL.setText(savedInstanceState.getString("text");
}
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt("visibility", mMainButtons_LL.getVisibility());
outState.putString("text", mMainButtons_LL.getText.toString());
}