2012-08-15 52 views
2

我需要製作一個包含可點擊數字的標籤,以便當用戶單擊標籤時調用一個電話號碼(或向用戶顯示呼叫選項)。當我點擊標籤,目前,我只是得到一個提示一種菜單中的選項來複制數...blackberry,當點擊標籤時撥打電話

private LabelField contactPhoneNumberField = new LabelField(number,Field.FOCUSABLE) 
{ 
     protected boolean navigationClick() 
     { 
      // write your code on click 
      // make the call 
      PhoneArguments callArgs = new PhoneArguments(
       PhoneArguments.ARG_CALL, number); 
      Invoke.invokeApplication(Invoke.APP_TYPE_PHONE, callArgs); 
      return true; 
     } 

    }; 

回答

2

我認爲,執行流不會進入你的navigationClick()方法,並且由於這個事實你會得到工具提示而不是想要的功能。

似乎點擊事件沒有到達您的標籤實例,並且之前已被使用。例如通過容器類實例(屏幕/管理器)。

檢查naviagationClick()容器屏幕類/管理器實例的方法,並確保您的標籤實例獲取單擊事件。

2
final LabelField contactPhoneNumberField = new LabelField("",Field.FOCUSABLE) { 
public boolean navigationClick (int status , int time){ 
    PhoneArguments callArgs = new PhoneArguments(
    PhoneArguments.ARG_CALL, number); 
    Invoke.invokeApplication(Invoke.APP_TYPE_PHONE, callArgs); 
    return true; 

} };

玩弄了一會兒就變成了後,我需要添加INT狀態和INT時間參數

+0

是的,因爲否則你沒有重寫navigationClick()方法,而是創建了一個具有不同簽名的新方法。 – 2012-08-15 12:34:47

+0

卡爾,你可以標記這個答案作爲解決方案(通過點擊答案旁邊的小「V」圖標接受)?這樣,我們知道你不需要任何幫助。謝謝。 – Nate 2012-08-15 23:47:18

2

一個忠告。您不應該使用navigationClick()來處理點擊。重寫navigationUnclick()方法,並處理Unclick。

  1. 這符合標準的用戶界面行爲。幾乎所有的本地字段,如按鈕,黑莓手機上的列表字段,都會在不點擊的情況下執行操作。即使窗口上的按鈕和鏈接也遵循相同的概念。

  2. 如果您對更改焦點的navigationClick()進行了一些操作,例如推新屏幕,則會在焦點處的新焦點上調用navigationUnclick。如果該字段是一個按鈕,該按鈕將被點擊。

  3. 如果焦點沒有改變,那麼navigationUnclick()將返回未處理的。這將導致屏幕的navigationUnclickUnhandled()將顯示「工具提示類型的菜單」。