Pregunta

De acuerdo con la documentación , Display.setCurrent no funciona si el visualizable actual es una alerta. Este es un problema ya que me gustaría para que aparezca otra alerta cuando el usuario selecciona un comando. ¿alguien sabe cómo trabajo alrededor de esto para que pueda pasar de una a otra de alerta? estoy usando CLDC 1.0 y MIDP 2.0.

Información adicional

La especificación hace nos permiten editar una alerta mientras se está en la pantalla, pero algunos teléfonos Nokia no se manejan bien en absoluto. Así que ahora estoy tratando de pasar de la alerta a un lienzo en blanco, luego de vuelta a la alerta. Por supuesto que no quiero que el usuario interactúe con el lienzo anterior, por lo que parece que estoy obligado a crear un nuevo lienzo en blanco. Como anotación al margen, esto tiene la desventaja leve de mirar peor en los teléfonos que todavía tienen la pantalla anterior cuando se muestra una alerta.

El mayor problema es cómo hacer la transición de la parte posterior lienzo en blanco para una alerta, una vez que se carga el lienzo. Las pruebas en el emulador de Motorola reveló que showNotify no se llama después de regresar de una alerta a la pantalla anterior. Creo que podría crear la siguiente alerta en el método de pintura, pero esto parece un hack feo.

¿Fue útil?

Solución 2

No podía encontrar una forma de evitar esto, por lo que acabo de utilizar el hack pintura.

public class AlertPage extends Canvas{
    MIDlet midlet;
    Alert alert;

    private AlertPage(MIDlet midlet){
        this.midlet=midlet;
    }

    protected void paint(Graphics arg0){
        //Yep, this is a hack, but showNotify doesn't seem to work well for Motorola
        if(alert!=null){
            Display d=Display.getDisplay(midlet);
            d.setCurrent(alert);
            alert=null;
        }
    }

    public static void showAlert(MIDlet m, Alert a){
        AlertPage page=new AlertPage(m);
        Display d=Display.getDisplay(m);
        page.alert=a;
        d.setCurrent(page);
    }
}

Otros consejos

Aceptar, por lo que su problema es que no pueden configurarlo para hacer:

Display.setCurrent(alert1, alert2);

y

Display.setCurrent(alert2);

También es no es posible si la corriente es visualizable ya alert1 .

Entonces, ¿qué puso un elemento visualizable intermedio que está en blanco y que inmediatamente cambia a la siguiente alerta? Suponiendo que la corriente es visualizable alert1 , como este en su alert1 's bloque de comandos:

Display.setCurrent(blankForm);
Display.setCurrent(alert2);

Eso debería funcionar suponiendo que no está utilizando el valor por defecto 'Rechazar' comando. Así que básicamente va de alert1 -> ( blankForm -> alert2 ).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top