Я создал ButtonField и BitmapField, как ..
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...");
}
}
}
Но щелчка по ButtonField или BitmapField в симуляторе Blackberry 4.7 не происходит.
Я хочу построить его для Blackberry Storm, поэтому я использую Blackberry 4.7
Как обрабатывать события касания / нажатия для ButtonField и BitmapField для Blackberry Storm?
Я создаю ButtonField & BitmapFields как
okButtonField = new ButtonField("Ok", BitmapField.HIGHLIGHT_SELECT | BitmapField.FOCUSABLE);
startBitmapField = new BitmapField(startBitmap, BitmapField.HIGHLIGHT_SELECT | BitmapField.FOCUSABLE);
Работает с ..
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;
}
но каждый раз вызывается одна и та же кнопка с фокусом.
Означает, что кнопка «ОК» имеет фокус, тогда даже если вы нажали кнопку «Удалить», кнопка «ОК» вызывается.
Так как изменить фокус на нажатии кнопки? означает, какой бы ButtonField или BitmapField был нажат, должен получить фокус?
есть ли способ проверить "button.isClicked () как button.isFocus ()"?