Ich habe ein ButtonField & ein BitmapField wie erstellt.
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...");
}
}
}
Aber der ButtonField- oder BitmapField-Klick findet im Blackberry 4.7-Simulator nicht statt.
Ich möchte es für Blackberry Storm bauen, also benutze ich Blackberry 4.7
Wie man Klick/Touch-Ereignisse für ButtonField & BitmapField für Blackberry Storm behandeln?
Ich erstelle die ButtonField & BitmapFields als
okButtonField = new ButtonField("Ok", BitmapField.HIGHLIGHT_SELECT | BitmapField.FOCUSABLE);
startBitmapField = new BitmapField(startBitmap, BitmapField.HIGHLIGHT_SELECT | BitmapField.FOCUSABLE);
Es arbeitet mit
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;
}
aber jedes Mal wird die gleiche Schaltfläche aufgerufen, die den Fokus hat.
Das heißt, wenn die Schaltfläche "Ok" den Fokus hat, wird die Schaltfläche "Ok" aufgerufen, obwohl Sie auf die Schaltfläche "Löschen" geklickt haben.
Also, wie man den Fokus auf Button Click ändern? bedeutet, welche ButtonField oder BitmapField angeklickt wird, sollte den Fokus erhalten?
Gibt es eine Methode zur Überprüfung von "button.isClicked() wie button.isFocus()"?