¿Cómo acceder a los datos dentro de la clase interna de Dialog Builder?

Esta es más una pregunta de Java, creo. Me gustaría acceder a myBundle desde OnClickListener. Actualmente, recibo este error del compilador: no se puede hacer referencia a una variable no final dataSend dentro de una clase interna definida en un método diferente. ¿Hay alguna forma de lograr lo que quiero hacer? Gracias. Pieza de código relevante ...

protected Dialog onCreateDialog(int id, Bundle myBundle) {
    switch (id) {
        case DIALOG_DELETE:
            AlertDialog.Builder builder = new AlertDialog.Builder(this);
            builder.setPositiveButton("Oh My God", new DialogInterface.OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {
                    // TODO Auto-generated method stub
                    executeDelete(myBundle);
                }
            });
    }
}

preguntado el 16 de mayo de 11 a las 18:05

Debería aceptar la respuesta de Anthony Chatellier:

2 Respuestas

poner final palabra clave delante de tu dataSend declaración (que no aparece en el código que ha pegado.

contestado el 16 de mayo de 11 a las 22:05

myBundle debe ser una variable. final lo haría bien, FINAL - Soluciones VJ Vélan

dude FINAL no significa que no pueda cambiar su contenido. no puedes cambiar la referencia. hazlo. - Ahmet Alp Balkan

Simplemente haga que su variable sea final.

protected Dialog onCreateDialog(int id, final Bundle myBundle) {

}

contestado el 16 de mayo de 11 a las 22:05

myBundle es una variable. No puedo hacerlo definitivo. ¿Alguna otra forma de lograrlo? Si no es así, rediseñaré mi diseño inicial para no tener que enviar los datos a través de un paquete y, en su lugar, que executeDelete acceda a los mismos datos a través de otros medios, como establecer variables privadas en el nivel de actividad. - Soluciones VJ Vélan

¿Por qué dices que no puedes hacerlo definitivo? ¿Lo probaste? - Anthony Chatellier

myBundle debe ser una variable. final lo haría bien, FINAL - Soluciones VJ Vélan

¿Sabes realmente lo que significa "final"? Si no comprende esta palabra clave, vaya a Google, encontrará muchas respuestas. He dedicado tiempo a responder a su pregunta, así que lea mi respuesta e intente comprenderla. Escribe el código que te envié y pruébalo para ver si funciona. Si cree que mi respuesta no es correcta, discuta o denos otras partes de su código que expliquen lo que dice. - Anthony Chatellier

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.