10
Here is my PreferenceActivity (Inner class of my Main Activity)
public static class TestSettings extends PreferenceActivity implements Preference.OnPreferenceClickListener{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.pref);
getPreferenceManager().findPreference("key").setOnPreferenceClickListener(this);
}
Here is my onPreferenceClick:
@Override
public boolean onPreferenceClick(Preference preference) {
FragmentClass fc = new FragmentClass();
fc.show(fm, "TAG");
return false;
}
And here is my FragmentClass ( TimePicker dialog ):
public class FragmentClass extends DialogFragment implements TimePickerDialog.OnTimeSetListener {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
return new TimePickerDialog(getActivity(), this, 15, 00, false);
}
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
Log.i("APP", "hour: "+hourOfDay+", min: "+minute);
}
}
PROBLEM:
When I click on preference (defined in XML ), and when I handle onClick (I'm showing TimePickerDialog onClick) I got following exception:
03-21 10:06:41.325: E/AndroidRuntime(11003): FATAL EXCEPTION: main
03-21 10:06:41.325: E/AndroidRuntime(11003): java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
03-21 10:06:41.325: E/AndroidRuntime(11003): at android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1327)
03-21 10:06:41.325: E/AndroidRuntime(11003): at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1338)
03-21 10:06:41.325: E/AndroidRuntime(11003): at android.suppo