可以if (savedInstanceState == null) {...}在onStart我的片段的方法中使用吗?每当我在onCreate方法中使用它时,我的片段都显示为空白。
public class MyActivity extends AppCompatActivity {
private static final String TAG = MyActivity.class.getSimpleName();
private Boolean mCurrentValue;
@Override
public void onCreate(Bundle savedInstanceState) {
Log.d(TAG, "onCreate:::: retrieving preferences");
SharedPreferences mSharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
mCurrentValue = mSharedPreferences.getBoolean("my_preference", false);
Log.d(TAG, "onCreate:::: my_preference and mCurrentValue=" + mCurrentValue);
if (mCurrentValue) {
setTheme(R.style.MyDarkAppCompatTheme);
Log.d(TAG, "onCreate:::: setTheme:MyDarkAppCompatNoActionBarTheme");
} else {
setTheme(R.style.MyLightTheme);
Log.d(TAG, "onCreate:::: setTheme:MyLightAppCompatNoActionBarTheme");
}
super.onCreate(savedInstanceState);
setContentView(R.layout.my_activity);
if (savedInstanceState == null) {
}
}
// in order to recreate Activity we must check value here because when we come back from another Activity onCreate doesn't called again
@Override
protected void onStart() {
super.onStart();
setContentView(R.layout.my_activity);
SharedPreferences mSharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
Boolean mNewValue = mSharedPreferences.getBoolean("my_preference", false);
// if value differs from previous Theme, we recreate Activity
if(mCurrentValue != mNewValue){
recreate();
}
MyFragment newFragment = new MyFragment();
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.detail_container, newFragment);
transaction.commit();
}
}
慕码人2483693
相关分类