Estoy tratando de llamar a un DialogFragment de mi Fragmento de la clase. Tengo un ImageView, y le gustaría llamar a mi DialogFragment clase en el onClickListener de la ImageView he levantado.

Estoy recibiendo un error en el onClick con el código que he puesto arriba tratando de llamar la DialogFragment.

Estoy recibiendo un error en «mostrar», declarando que «El método show(FragmentManager, Cadena) en el tipo de DialogFragment no es aplicable para los argumentos (FragmentManager, String)» y un error sobre la «nueva Instancia», declarando que «El método newInstance() está definido por el tipo de 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;
}

DialogFragment clase:

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;
    }
}
Agregar logcat por favor.
Y no puedo ver su método estático MyDialogFragment.newInstance()

OriginalEl autor Jack | 2013-10-08

2 Comentarios

  1. 6

    Usted no tiene un método estático por el nombre newInstance. Agregue el siguiente en el cuadro de Diálogo Fragmento

    public static MyDialogFragment newInstance() {
        MyDialogFragment f = new MyDialogFragment();
        return f;
        }

    Usted puede encontrar más información y un ejemplo en la documentación

    http://developer.android.com/reference/android/app/DialogFragment.html

    Estoy recibiendo el eror en «MyDialogFragment» diciendo «MyDialogFragment no pueden ser resueltas en una variable» y «f no puede ser resuelto a una variable». He actualizado el código de modo que usted puede ver lo que parece.
    Estar atentos! public static MyDialogFragment newInstance() { MyDialogFragment f = new MyDialogFragment(); return f; }
    gracias rectificado. error de tecleo.
    Es aceptable para pasar los datos a la DialogFragment desde el Fragmento de sí mismo (digo persisten opciones en multiselect vista) en lugar de pasar los datos de la actividad y, a continuación, recuperar los datos en el DialogFragment?

    OriginalEl autor Raghunandan

  2. 0

    Y usted también puede llamar a MyDialogFragment sin newInstance método como

    DialogFragment newFragment = new MyDialogFragment(this);
    newFragment.show(getFragmentManager(), "date_picker");

    OriginalEl autor Xar E Ahmer

Dejar respuesta

Please enter your comment!
Please enter your name here