2010-06-25 69 views
0

我從json url中檢索對象列表,並通過添加標籤字段和分隔符將其顯示爲列表。現在,我想讓每個標籤都可點擊,以便每個標籤都重定向到一個單獨的url。在點擊標籤時,必須使用相應url的json數據打開單獨的屏幕。那麼,誰能告訴我如何實現這一點。我西港島線是真的很感激,如果我得到的是如何做到這一點一些示例代碼......下面是我做了一些示例代碼...標籤上的字段更改偵聽器

public VerticalFieldManager showShoppingList(){ 
     try { 
      jsArrShpList=new JSONArray(strShopping); 
      totalList= jsArrShpList.length(); 
      for(int i=0;i<totalList;i++){ 
       String strAlert=jsArrShpList.get(i).toString(); 
       JSONObject joAlert=new JSONObject(strAlert); 
       String shoppingList = joAlert.get("CategoryName").toString(); 
       LabelField shops = new LabelField(shoppingList); 
       VerticalFieldManager vfmListRow=new VerticalFieldManager(); 
       vfmListRow.add(shops); 
       vfmListRow.add(new SeparatorField()); 
       vfmShpList.add(vfmListRow); 

      } 

      return vfmShpList; 

回答

1

而不是使用一堆LabelFields的通常不接受重點或點擊事件,爲什麼不在屏幕上使用ListField?這似乎更多的是你在找什麼。

如果您確實想要使用LabelField方法,則需要執行一些操作。首先,當您創建的LabelField,使用Field.FOCUSABLE風格,使其接受焦點:

LabelField shops = new LabelField(shoppingList, Field.FOCUSABLE); 

現在,因爲如果你設置一個將labelField場不會叫成一個變化監聽器,你需要在其父母管理器中收聽點擊和重要事件。由於這些點擊或鍵事件可以用於管理器中的任何字段,因此您需要檢查事件發生時哪個字段處於焦點狀態,並根據焦點字段運行任何適當的處理程序。

代碼示例:

VerticalFieldManager vfmListRow = new VerticalFieldManager() { 
    protected boolean navigationClick(int status, int time) { 
     Field field = getFieldWithFocus(); 
     if (field != null && field.equals(shops)) { 
      System.out.println("shops field clicked"); 
      return true; 
     } 
     return super.navigationClick(status, time); 
    } 

    protected boolean keyChar(char key, int status, int time) { 
     Field field = getFieldWithFocus(); 
     if (key == Characters.ENTER && field != null && field.equals(shops)) { 
      System.out.println("shops field clicked"); 
      return true; 
     } 
     return super.keyChar(key, status, time); 
    } 
}; 
+0

u能PLZ提供使用ListField從URL顯示JSON數據爲例... – 2010-06-26 04:27:53

+0

有很多與BlackBerry開發工具附帶示例應用程序,其中很多使用ListField控件。至於JSON,最好的辦法是使用第三方庫,如org.json.me – 2010-06-28 03:14:40