Estoy tratando de implementar un sencillo cuadro de Diálogo en mi código. Pero no funciona. He buscado en cada tutorial, incluyendo el desarrollador oficial la guía, pero nada funciona. El error que tengo de logcat es que estoy recibiendo un nullPointerException, supongo que en el getActivity. Alguna ayuda?

Esto es lo que tengo: Este es mi Costumbre clase de Diálogo.

clase pública SaveDialog se extiende DialogFragment {

public Dialog onCreateDialog(Bundle savedInstanceState) {
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
    builder.setTitle("Save Password");
    builder.setView(getContentView());
    Dialog dialog = builder.create();
    dialog.show();
    return dialog;
}

private View getContentView() {
    LayoutInflater inflater = getActivity().getLayoutInflater();

    return inflater.inflate(R.layout.dialog, null);
}
}

y este es mi principal actividad en la que el onclick se produce

private void savePassword() {


    SaveDialog savePasswordDialog = new SaveDialog();
    savePasswordDialog.show(savePasswordDialog.getSupportFragmentManager(), "tag");

    }

Cada vez que el fuego de la onClick, la aplicación se bloquea. En la parte superior de que, en la actualidad estoy tratando de usar getSupportFragmentManager, pero se dice que es indefinido.

no te olvides de compartir Logcat cuando la aplicación se bloquea.
Supongo que el problema está en getActivity(). Se está volviendo null
En la Actividad, se debe utilizar sólo getSupportFragmentManager(), la causa es la Actividad del método.
Sí, el problema es que getActivity es devolver null. He intentado usar el Contexto y pasar de la actividad Principal, pero el problema persiste.

OriginalEl autor Pztar | 2012-12-02

4 Comentarios

  1. 14

    Debe utilizar getSupportFragmentManager(), que sólo está disponible en FragmentActivity.

    Usted debe cambiar su actividad a un fragmento de uno.

    De verificación esta respuesta

    ¿Cómo puedo llamar getSupportFragmentManager() desde el Fragmento de la clase (que se extiende Fragmento)?
    getActivity().getSupportFragmentManager() si recuerdo correctamente

    OriginalEl autor fedepaol

  2. 2

    Probar esta..funciona!!


    ((AppCompatActivity)activity).getSupportFragmentManager()

    OriginalEl autor Debasish Ghosh

  3. 1

    Acaba de llamar getFragmentManager() desde tu android.apoyo.v4.app.DialogFragment o android.apoyo.v4.app.Fragmento. Se devolverá un android.apoyo.v4.app.FragmentManager (esto es, el apoyo FragmentManager)

    OriginalEl autor GaRRaPeTa

  4. -1

    Usted no tiene que mostrar manualmente el diálogo en onCreateDialog(), acaba de regresar es suficiente para DialogFragment a trabajar su magia (y mostrar el cuadro de diálogo) cuando llame savePassword().

    Por lo que la eliminación de esta línea de onCreateDialog :
    cuadro de diálogo.show();

    y debería funcionar. Buena suerte!

    OriginalEl autor Hang Guan

Dejar respuesta

Please enter your comment!
Please enter your name here