2011-06-21 84 views
0

您好先生,我試過這樣做,但事情是即時獲取數據中的數據不是單一的數據...我想要顯示數據一個一個,只要它得到專注這....這裏的代碼和結果....如何更改黑莓焦點領域

protected boolean navigationMovement(int dx, int dy, int status, int time) { 
     for (int i = 0; i < CrDrLabels.length; i++) { 


      Field field = CrDrLabels[i]; 

      System.out.println("hhhhhhhhhhhhhhhh::::" + CrDrLabels[i]); 

      if (field.isFocus() == true) { 


       // get object for next field in focus order 

       field = (i == (getFieldCount() - 1)) ? CrDrLabels(0): CrDrLabels(i + 1); 

       CrDrLabels[i].setFocus(); 

       //break; 
      } 
     } 
     return false; 

    } 

    private Field CrDrLabels(int i) { 
     // TODO Auto-generated method stub 
     return null; 
    } 

結果........

hhhhhhhhhhhhhhhh::::KV10 
hhhhhhhhhhhhhhhh::::FV6 
hhhhhhhhhhhhhhhh::::HV8 
hhhhhhhhhhhhhhhh::::NV12 
hhhhhhhhhhhhhhhh::::OV15 
hhhhhhhhhhhhhhhh::::JV9 
hhhhhhhhhhhhhhhh::::DV5 
hhhhhhhhhhhhhhhh::::PV16 
hhhhhhhhhhhhhhhh::::Vendor1 
hhhhhhhhhhhhhhhh::::New Info Systems 
hhhhhhhhhhhhhhhh::::MV14 
hhhhhhhhhhhhhhhh::::PV4 
hhhhhhhhhhhhhhhh::::Tv23 
hhhhhhhhhhhhhhhh::::Vendor4 
hhhhhhhhhhhhhhhh::::Vendor5 
hhhhhhhhhhhhhhhh:::: 
hhhhhhhhhhhhhhhh:::: 

我想,如果重點是任何一個它應該只顯示該數據和我可以執行該選定的數據事件....因爲我們正在做任何電話的消息...

請給我一些代碼如何鞋底這個問題...

回答

1

這條線:field = (i == (getFieldCount() - 1)) ? CrDrLabels(0): CrDrLabels(i + 1)有我困惑,因爲你CrDrLabels(int)方法只返回null。確保你不想使用數組訪問器([])。另外,除非你覆蓋了CrDrLabel類的toString()方法,否則當你使用System.out.println()時,你會得到奇數輸出。

最簡單的事情就是重寫您的CrDrLabels的onFocus()方法,以便在獲得焦點時執行任何需要的操作。

編輯發表評論:

我就寫這個,就好像你CrDrLabels是LabelFields。當你創建它們這樣做:

CrDrLabels[x] = new LabelField(theText) { 
    protected void onFocus(int direction) { 
     //do your work here 

     //and be sure to call super.onFocus() 
     super.onFocus(direction); 
    } 
} 
+0

先生可以ü更具體的我不是能理解,如果可能的PLZ給我的代碼...感謝名單... –

+0

編輯我的答案 – jprofitt