Tengo una aplicación de ejemplo "hello world" -ish que utiliza la API android-support-v4 fragments. La actividad consiste en un botón, al hacer clic se mostrará un DialogFragment. Sin embargo, los cambios de configuración como la rotación hacen que el diálogo desaparezca, incluso si se usa setRetainInstance (verdadero).DialogFragment desaparece al girar a pesar de setRetainInstance (verdadero)
alguna idea de cómo solucionar este problema?
RetFragment.java
package me.local.HelloFroyo;
import android.os.Bundle;
import android.support.v4.app.*;
import android.util.Log;
import android.view.*;
public class RetFragment extends DialogFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRetainInstance(true);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.hello_dialog_fragment, container);
}
@Override
public void onDestroy() {
super.onDestroy();
Log.e("RET", "onDestroy");
}
}
MainActivity.java
package me.local.HelloFroyo;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.view.View;
public class MainActivity extends FragmentActivity {
private static final String TAG_DLG = "myFragDlg";
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
this.setContentView(R.layout.activity_main);
}
public void onShowClick(View v) {
RetFragment ret = new RetFragment();
ret.show(getSupportFragmentManager(), TAG_DLG);
}
}
Esto no parece funcionar para mí-- el diálogo aún se descarta. – ch3rryc0ke
@ ch3rryc0ke encontraste algún solución a esto, tengo el mismo problema. He implementado el código anterior, pero el diálogo aún se descarta – drisse
No estoy seguro acerca de la solución aquí, pero tienes razón en que no deberías usar 'setRetainInstance' en este caso .Si hay un estado que desea persistir, use el 'savedInstanceState' o' arguments' 'Bundle'. Hay un [buen ejemplo] (http://developer.android.com/reference/android/app/DialogFragme nt.html # AlertDialog) en los documentos de Android sobre la mejor manera de usar 'DialogFragment' para generar' AlertDialog's. – jsadler