He creado una ButtonField & un BitmapField como ..Cómo manejar los eventos ButtonField y BitmapField Click (Touch) en Blackberry Storm?
public class MyCanvas extends MainScreen implements FieldChangeListener
{
HorizontalFieldManager hfm;
private Bitmap startBitmap;
private BitmapField startBitmapField;
private ButtonField okButton;
MyCanvas()
{
hfm = new HorizontalFIeldManager();
startBitmap = Bitmap.getBitmapResource("start.png");
startBitmapField = new BitmapField(startBitmap);
startBitmapField.setChangeListener(this);
hfm.add(startBitmapField);
okButton = new ButtonField("Ok", ButtonField.CONSUME_CLICK | ButtonField.NEVER_DIRTY);
okButton.setChangeListener(this);
hfm.add(okButton);
}
public void fieldChanged(Field field, int context)
{
if(field == startBitmapField)
{
System.out.println("Touched START...");
}
else if(field == okButton)
{
System.out.println("Touched Ok...");
}
}
}
Pero el ButtonField o BitmapField clic no está sucediendo en Blackberry 4.7 simulador.
Quiero construirlo para Blackberry Storm, así que estoy usando Blackberry 4.7
Cómo manejar click/toque eventos para ButtonField & BitmapField para Blackberry Storm?
i M crear las ButtonField & BitmapFields como
okButtonField = new ButtonField("Ok", BitmapField.HIGHLIGHT_SELECT | BitmapField.FOCUSABLE);
startBitmapField = new BitmapField(startBitmap, BitmapField.HIGHLIGHT_SELECT | BitmapField.FOCUSABLE);
Su trabajo con ..
protected boolean touchEvent(TouchEvent event)
{
switch(event.getEvent() )
{
case TouchEvent.DOWN: ........
return true;
case TouchEvent.MOVE: .......
return true;
case TouchEvent.UP: ........
return true;
case TouchEvent.CLICK:
if(deleteButton.isFocus())
{
System.out.println("Touched DEL ..........");
}
else if(okButton.isFocus())
{
System.out.println("Touched OK ..........");
}
else if(startBitmapField.isFocus())
{
System.out.println("Touched START ..........");
}
return true;
}
return false;
}
pero cada vez que se invoca el mismo botón que está teniendo el foco.
Significa que si el botón "Aceptar" tiene foco, a pesar de que ha hecho clic en el botón "Eliminar" se llama al botón "Aceptar".
Entonces, ¿cómo cambiar el foco en el botón Hacer clic? significa que ButtonField o BitmapField se hace clic, debe obtener el foco?
¿hay algún método para comprobar "button.isClicked() como button.isFocus()"?
sí. Agregué hfm a la pantalla. En realidad hay r 2 botones. Entonces, ¿cómo manejar sus eventos de clic? Ahora estoy entregando por button.setChangeListener (esto) y anulando su método fieldChanged() como mi código anterior. Pero no tiene efecto. Entonces, ¿cómo manejar eventos táctiles para 2 botones? Voy a probar tu código para bitmapFields. – Shreyas
Shreyas, he actualizado el código con un botón más, todavía está funcionando ... ¿Tal vez depende de otra cosa? Compruébelo, y si todavía no funciona, puede publicar su código completo para que lo descubramos. –
¿puedes tocar ButtonFields & BitmapFields en el simulador 4.7.0.41? – Shreyas