Вы можете поместить CustomLabelField ниже полей кнопки.Переопределите ваши ButtonFields onFocus(int direction)
и onUnfocus()
методы.Внутри них вызовите setLabel(String label)
метод вашего CustomLabelField
class CustomLabelField extends Field {
String label;
public void setLabel(String label){
this.label = label;
invalidate();
}
protected void layout(int arg0, int arg1) {
setExtent(Display.getWidth, getFont().getHeight());
}
protected void paint(Graphics graphics) {
graphics.setColor(Color.Black);
graphics.drawText(label, 0, 0);
}
}
РЕДАКТИРОВАТЬ (после комментариев)
Вы можете использовать эту пользовательскую кнопку и добавить в нее свои дополнительные функции.Я не пробовал, если это работает, но должно работать.
import net.rim.device.api.ui.component.BitmapField;
import net.rim.device.api.ui.container.MainScreen;
public class CustomButtonField extends BitmapField{
private String label = "";
private MainScreen yourScreen;
public CustomButtonField(String label, MainScreen yourScreen) {
super();
this.label = label;
this.yourScreen = yourScreen;
}
protected void onFocus(int direction) {
yourScreen.setTitle(label);
super.onFocus(direction);
}
protected void onUnfocus() {
yourScreen.setTitle("");
super.onUnfocus();
}
}