Note that there are some explanatory texts on larger screens.

plurals
  1. POInstantiationException on Orientation Change when DialogFragment is on the top
    primarykey
    data
    text
    <p>I have a <code>DialogFragment</code> defined as <strong>inner</strong> class in my <code>Fragment</code> class. On Orientation Change even the following exception is poped up: </p> <pre><code> Caused by: android.app.Fragment$InstantiationException: Unable to instantiate fragment my.package.fragments.ImportFragment$FailedImportDialog: make sure class name exists, is public, and has an empty constructor that is public at android.app.Fragment.instantiate(Fragment.java:585) at android.app.FragmentState.instantiate(Fragment.java:96) at android.app.FragmentManagerImpl.restoreAllState(FragmentManager.java:1682) at android.app.Activity.onCreate(Activity.java:861) at my.package.activities.ImportActivity.onCreate(ImportActivity.java:8) at android.app.Activity.performCreate(Activity.java:4465) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920) ... 12 more Caused by: java.lang.InstantiationException: can't instantiate class my.package.fragments.ImportFragment$FailedImportDialog; no empty constructor at java.lang.Class.newInstanceImpl(Native Method) at java.lang.Class.newInstance(Class.java:1319) at android.app.Fragment.instantiate(Fragment.java:574) </code></pre> <p>But I do have public constructor: </p> <pre><code>class FailedImportDialog extends DialogFragment { private EditText edtPassword; private Button button; public FailedImportDialog() { // Here it is! } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = inflater.inflate(R.layout.another_password_dialog, container, false); edtPassword = (EditText) v.findViewById(R.id.another_password_dialog_et_password); getDialog().setTitle(R.string.failed_to_decrypt); Button button = (Button) v.findViewById(R.id.another_password_dialog_btn_ok); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { }); return v; } } </code></pre> <p>Here is xml: </p> <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:padding="10dp"&gt; &lt;TextView android:id="@+id/another_password_dialog_tv_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/what_password_did_you_use"&gt; &lt;/TextView&gt; &lt;EditText android:id="@+id/another_password_dialog_et_password" android:layout_height="wrap_content" android:layout_width="match_parent" android:inputType="textPassword"&gt; &lt;requestFocus&gt; &lt;/requestFocus&gt; &lt;/EditText&gt; &lt;Button android:id="@+id/another_password_dialog_btn_ok" android:layout_height="wrap_content" android:layout_width="match_parent" android:text="OK"&gt; &lt;/Button&gt; &lt;/LinearLayout&gt; </code></pre> <p>Do you guys know why this exception happens? Thank you!</p> <p><strong>UPDATE:</strong> If I move a class to a separate file there is no such an exception, everything goes smoothly. So the question is - why this exception happens when <code>DialogFragment</code> is an inner class?</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    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