I wrote the following code fragment regenerate when the screen is rotated.
the fragment setArguments is a "java.lang.IllegalStateException" error occurs.
What better way is there to do?
Reference of:retain the fragment object while rotating
Reference of:refresh fragment at reload
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
String tag = "my_fragment";
FragmentManager fragmentManager = getFragmentManager();
Fragment f = fragmentManager.findFragmentByTag(tag)
if(f == null) { //or if(null == savedInstanceState){
//create Fragment
FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
Fragment homeFragment = new Home();
fragmentTransaction.add(R.id.mainFragement, homeFragment, tag);
fragmentTransaction.commit();
} else {
//renew Fragment
Bundle newArgs = //want to renew Args
f.setArguments(newArgs);
ft.detach(f);
ft.attach(f);
ft.commit();
}
}
01-24 16:00:54.905: E/VideoPlayerActivity.java # onNewIntent:319(22727): Fragment already active
01-24 16:00:54.905: E/VideoPlayerActivity.java # onNewIntent:319(22727): java.lang.IllegalStateException: Fragment already active
01-24 16:00:54.905: E/VideoPlayerActivity.java # onNewIntent:319(22727): at android.support.v4.app.Fragment.setArguments(Fragment.java:551)