我想在更改主题后转换activity recreate(),可以吗?
我尝试过:@android:anim/fade_in @android:anim/fade_out,但它不起作用,这也会影响我打开和关闭activity时的过渡,但我不想这样
发布于 2019-09-25 01:36:00
要使用@Arunava的答案“保存状态”,请执行以下操作
Activity mCurrentActivity = getActivity();
Intent intent = getActivity().getIntent();
Bundle tempBundle = new Bundle();
intent.putExtra("bundle", tempBundle);
mCurrentActivity.finish();
mCurrentActivity.overridePendingTransition(R.anim.transition_for_incoming_activity, R.anim.transition_for_outgoing_activity);
mCurrentActivity.startActivity(intent);然后在您的活动的onCreate中执行此操作
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getIntent().hasExtra("bundle")){
//Insert a method to display the activity or fragment that triggered the activity to restart
}
super.onResume();
}发布于 2020-08-08 17:08:21
完成@Yaro的回答,
在onCreate中,如果savedInstanceState为null,请尝试使用intent附加参数。只有在使用捆绑包调用super.onCreate时,视图的状态才能正确恢复。
public class ExampleActivity extends Activity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
//setTheme(whatever);
super.onCreate(savedInstanceState != null ? savedInstanceState : getIntent().getBundleExtra("saved_state"));
}
protected void transitionRecreate(){
Bundle bundle = new Bundle();
onSaveInstanceState(bundle);
Intent intent = new Intent(this, getClass());
intent.putExtra("saved_state", bundle);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
}
}对于我来说,您可以使用finish()而不是CLEAR_TOP标志
发布于 2017-02-20 11:47:26
您可以使用它而不是recreate()
Activity mCurrentActivity = getActivity();
...
mCurrentActivity.finish();
mCurrentActivity.overridePendingTransition(R.anim.transition_for_incoming_activity, R.anim.transition_for_outgoing_activity);
mCurrentActivity.startActivity(mCurrentActivity.getIntent());https://stackoverflow.com/questions/42120440
复制相似问题