2012-03-23 12 views
0

フォーカスのある特定のラベルのテキストをBitmapFieldに設定し、unfocusでテキストをリセットしたいとします。Blackberry BitmapField focus-unfocus prob

final BitmapField tab1 = new BitmapField(Bitmap.getBitmapResource("img/icon1.png"), FIELD_BOTTOM | BitmapField.FOCUSABLE) { 
    protected void drawFocus(Graphics graphics, boolean on) { 
     // the simplies way to draw a rectangle and this will be the 
     // focus 

    } 

    protected boolean navigationClick(int status, int time) { 
     // write here your code what you want to run the user clicks to 
     // the bitmap 
     // try something like this 
     Dialog.alert("Code for tab1"); 
     return true; 
    } 

    public void setFocus(){ 
     super.setFocus(); 
     selectedLabel.setText("tab1");  
    } 

    public void onUnfocus(){ 
     super.onUnfocus(); 
     selectedLabel.setText(""); 
    } 

}; 

をしかし焦点が適切に変更されますが、ラベルが全く設定されていません。私は、次のコードを使用しています。私のコードのどこに問題がありますか?

答えて

2

オーバーライドonFocus(int direction)代わりに使用onfocus() & onUnfocus()方法

0

setFocus()のとInvalidate()オプションを使用して、両方の方法であなたのLabelFieldを交換してください。

1
protected void onFocus(int direction) { 
    super.onFocus(direction); 
    selectedLabel.setText("tab1"); 
} 

protected void onUnfocus() { 
    super.onUnfocus(); 
    selectedLabel.setText(""); 
}