目前我的应用程序中有4个位图按钮。我想为每个按钮添加类似Label / Name的内容,这样每当有人专注于特定按钮时,名称就会出现在屏幕上的某个位置。它可能位于顶部,按钮下方或任何地方都可以。
我该怎么做?我尝试搜索位图按钮字段标签,但我发现没有什么真正有用。
答案 0 :(得分:3)
您可以在按钮字段下方放置CustomLabelField。覆盖ButtonFields onFocus(int direction)
和onUnfocus()
方法。在它们内部调用CustomLabelField的setLabel(String label)
方法
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();
}
}