2010-01-14 37 views
1

我在我的UI 2按鈕中有3個字段,其中一個位於標籤字段的頂部和其他位置...當標籤字段獲得焦點時,我希望按鈕出現,而我應該能夠點擊他們...當標籤領域失去焦點時,按鈕應該消失..如何才能做到這一點...Blackberry ButtonField的可見性取決於LabelField焦點

+0

Kaddy你正要問題是正確的,它提供了更多的有趣:)看到更新! – 2010-01-15 07:19:17

回答

2

把一些經理字段作爲佔位符在按鈕位置,然後添加一個FocusChangeListenerfocusChanged上標記和使用add/delete字段以顯示/隱藏按鈕。

UPDATE
因爲從領域的每一個重點的變化可能會改變佈局,認爲它能夠更好地監聽器添加到每個字段添加到屏幕和佔位符:

class Scr extends MainScreen { 
    HorizontalFieldManager placeholder = new HorizontalFieldManager() { 
     public void add(Field field) { 
      if (field.getFocusListener() != null) 
       field.setFocusListener(null); 
      field.setFocusListener(focusListener); 
      super.add(field); 
     } 
    }; 
    ButtonField buttonField = new ButtonField("button", 
      ButtonField.CONSUME_CLICK); 
    LabelField labelField = new LabelField("label", FOCUSABLE); 

    public Scr() { 
     add(placeholder); 
     add(labelField); 
     add(new LabelField("label2", FOCUSABLE)); 
    } 

    public void add(Field field) { 
     if (!(field instanceof Manager)) { 
      if (field.getFocusListener() != null) 
       field.setFocusListener(null); 
      field.setFocusListener(focusListener); 
     } 
     super.add(field); 
    } 

    FocusChangeListener focusListener = new FocusChangeListener() { 
     public void focusChanged(Field field, int eventType) { 
      if (eventType == FOCUS_GAINED) { 
       if (field == labelField) { 
        if (buttonField.getManager() == null) 
         placeholder.add(buttonField); 
       } else if (field != buttonField) 
        placeholder.delete(buttonField); 
      } 
     } 
    }; 
} 
+0

我有一個問題....我還沒有測試過這個,但如果標籤領域有焦點...我試着點擊按鈕..將按鈕不會消失...我想能夠點擊按鈕以及...請糾正我,如果我錯了...謝謝.. – Kaddy 2010-01-14 18:24:59

+0

我懷疑會發生。它可能在觸控設備上工作,但在軌跡球設備上,按鈕必須先關注點才能點擊。我必須承認,我完全不知道你想在這裏實現什麼。 – Richard 2010-01-14 20:53:20

+0

這似乎不工作在9500 ...我看到另一個屏幕重疊... – Kaddy 2010-01-15 23:14:02

相關問題