Note that there are some explanatory texts on larger screens.

plurals
  1. POCan not perform this action after onSaveInstanceState (onClick preference)
    primarykey
    data
    text
    <p>Here is my <code>PreferenceActivity</code> (Inner class of my Main Activity)</p> <pre><code>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); } </code></pre> <p>Here is my <code>onPreferenceClick</code>:</p> <pre><code>@Override public boolean onPreferenceClick(Preference preference) { FragmentClass fc = new FragmentClass(); fc.show(fm, "TAG"); return false; } </code></pre> <p>And here is my <code>FragmentClass</code> ( <code>TimePicker</code> dialog ):</p> <pre><code>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); } } </code></pre> <p><strong>PROBLEM:</strong></p> <p>When I click on preference (defined in XML ), and when I handle <code>onClick</code> (I'm showing <code>TimePickerDialog</code> <code>onClick</code>) I got following exception:</p> <pre><code> 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.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:595) 03-21 10:06:41.325: E/AndroidRuntime(11003): at android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:574) 03-21 10:06:41.325: E/AndroidRuntime(11003): at android.support.v4.app.DialogFragment.show(DialogFragment.java:127) 03-21 10:06:41.325: E/AndroidRuntime(11003): at com.example.timepicker2.MainActivity$TestSettings.onPreferenceClick(MainActivity.java:110) 03-21 10:06:41.325: E/AndroidRuntime(11003): at android.preference.Preference.performClick(Preference.java:951) 03-21 10:06:41.325: E/AndroidRuntime(11003): at android.preference.PreferenceScreen.onItemClick(PreferenceScreen.java:215) 03-21 10:06:41.325: E/AndroidRuntime(11003): at android.widget.AdapterView.performItemClick(AdapterView.java:298) 03-21 10:06:41.325: E/AndroidRuntime(11003): at android.widget.AbsListView.performItemClick(AbsListView.java:1100) 03-21 10:06:41.325: E/AndroidRuntime(11003): at android.widget.AbsListView$PerformClick.run(AbsListView.java:2749) 03-21 10:06:41.325: E/AndroidRuntime(11003): at android.widget.AbsListView$1.run(AbsListView.java:3423) 03-21 10:06:41.325: E/AndroidRuntime(11003): at android.os.Handler.handleCallback(Handler.java:725) 03-21 10:06:41.325: E/AndroidRuntime(11003): at android.os.Handler.dispatchMessage(Handler.java:92) 03-21 10:06:41.325: E/AndroidRuntime(11003): at android.os.Looper.loop(Looper.java:137) 03-21 10:06:41.325: E/AndroidRuntime(11003): at android.app.ActivityThread.main(ActivityThread.java:5041) 03-21 10:06:41.325: E/AndroidRuntime(11003): at java.lang.reflect.Method.invokeNative(Native Method) 03-21 10:06:41.325: E/AndroidRuntime(11003): at java.lang.reflect.Method.invoke(Method.java:511) 03-21 10:06:41.325: E/AndroidRuntime(11003): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 03-21 10:06:41.325: E/AndroidRuntime(11003): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 03-21 10:06:41.325: E/AndroidRuntime(11003): at dalvik.system.NativeStart.main(Native Method) </code></pre> <p>Code error points to method <code>show()</code> in <code>onPreferenceClick</code> method.</p> <p>Why does this happen and how can I fix this?</p> <p>EDIT:</p> <p>Prefs.xml file</p> <pre><code> &lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" &gt; &lt;CheckBoxPreference android:title="Checkbox" android:summary="Checkbox"/&gt; &lt;EditTextPreference android:summary="time" android:dialogTitle="Hello" /&gt; &lt;Preference android:title="Prefff" android:key="key"/&gt; &lt;/PreferenceScreen&gt; </code></pre> <p><strong>What i've tried:</strong></p> <p>I've tried solution with most votes, which i found here <a href="https://stackoverflow.com/questions/7469082/getting-exception-illegalstateexception-can-not-perform-this-action-after-onsa/10261438#10261438">getting exception &quot;IllegalStateException: Can not perform this action after onSaveInstanceState&quot;</a></p> <pre><code> @Override protected void onSaveInstanceState(Bundle outState) { //No call for super(). Bug on API Level &gt; 11. } </code></pre> <p>But it's still not working. Not even on API &lt; 11. I'm still getting already mentioned exception.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload