Llamar a DialogFragment del fragmento
Estoy tratando de llamar a un DialogFragment de mi clase Fragment. Tengo un ImageView, y quisiera llamar mi clase de DialogFragment en el onClickListener del ImageView que he fijado.
Estoy recibiendo un error en el onClick con el código que he configurado tratando de llamar a DialogFragment.
- Error con DialogFragment en Android
- ¿Cómo subir un DialogFragment sobre otro?
- Textview: usando el estilo de título de diálogo: @android: style / TextAppearance.DialogWindowTitle
- OnCancelListener no se llama en DialogFragment
- ¿Cómo afecta DialogFragment al ciclo de vida del Fragmento llamante?
Estoy recibiendo un error en "show" declarando "El método show (FragmentManager, String) en el tipo DialogFragment no es aplicable para los argumentos (FragmentManager, String)" y un error en "new Instance" declarando "El método newInstance () Es indefinido para el tipo MyDialogFragment "
Aquí está mi código:
@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { final View v = inflater.inflate(R.layout.image_detail_fragment, container, false); mImageView = (RecyclingImageView) v.findViewById(R.id.imageView); mImageView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { //Here MyDialogFragment dialog = MyDialogFragment.newInstance(); dialog.show(getFragmentManager(), "fragmentDialog"); } }); return v; }
Clase DialogFragment:
import android.app.AlertDialog; import android.app.Dialog; import android.app.DialogFragment; import android.content.Context; import android.content.DialogInterface; import android.os.Bundle; class MyDialogFragment extends DialogFragment { Context mContext; public MyDialogFragment() { mContext = getActivity(); } @Override public Dialog onCreateDialog(Bundle savedInstanceState) { AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(mContext); alertDialogBuilder.setTitle("Set Wallpaper?"); alertDialogBuilder.setMessage("Are you sure?"); //null should be your on click listener alertDialogBuilder.setPositiveButton("OK", null); alertDialogBuilder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }); return alertDialogBuilder.create(); } public static MyDialogFragment newInstance() { MyDialogFragment = new MyDialogFragment; return f; } }
- Hacer bottomSheetDialog pantalla completa sobre la barra de estado
- IllegalStateException cuando se utiliza DialogFragment
- Cómo configurar el tamaño de fuente para el texto de los botones de diálogo
- Margen de diseño / relleno en la parte superior del fragmento de diálogo
- El cuadro de diálogo de pantalla completa de Android aparece transparente y en la posición incorrecta
- Eliminar fondo blanco en dialogfragment
- GetSupportFragmentManager () no está definido
- Mostrando bloques de DialogFragments ICS
No tiene un método estático con el nombre newInstance
. Agregue lo siguiente en su fragmento de diálogo
public static MyDialogFragment newInstance() { MyDialogFragment f = new MyDialogFragment(); return f; }
Puede encontrar más información y un ejemplo en los documentos
http://developer.android.com/reference/android/app/DialogFragment.html
Y también puede llamar a MyDialogFragment sin método newInstance
como
DialogFragment newFragment = new MyDialogFragment(this); newFragment.show(getFragmentManager(), "date_picker");
- Cómo utilizar Intel® Integrated Native Developer Experience para desarrollar aplicaciones nativas de Android.
- Guardar BottomNavigationVer el elemento seleccionado durante la rotación de la pantalla