2012-03-07 248 views
0

我想在選擇應用程序中的所有選擇菜單項時選擇列表域中的所有項目。我這樣的代碼..如何選擇所有項目在選擇所有菜單項時選擇黑莓的列表框複選框

selectall = new MenuItem("Selectall", 200, 10){ 
      public void run(){ 
      int elementLength = _elements.length; 
      for(int count = 0; count < elementLength; ++count) 
       { 
      _listData.addElement(new ChecklistData(_elements[count], true)); 
      listField.insert(count); 
       } 
      } 
     }; 

但IAM獲得與舊列表also.below舊列表新列表與checked.how來解決that.please給你ideas.and其中IAM做的結果錯誤,提前預感..

回答

0

感謝您的所有建議。我解決我的問題now..the的解決辦法是..

selectall = new MenuItem("Selectall", 200, 10){ 
      public void run(){ 

       int elementLength = _elements.length; 
       for(int count = 0; count < elementLength; ++count) 
       { 
        _listData.setElementAt(new ChecklistData(_elements[count], true), count); 

       } 
      } 
     }; 
+0

你的方法會奏效,但你也在浪費記憶。您正在創建該「ChecklistData」項目的第二個副本,只是爲了設置要檢查的複選框值。是的,Java的垃圾收集器將清理它,但是您正在爲手機和應用程序創建額外的工作,而這非常簡單。我仍然說你需要找到一個去設置ChecklistData的複選框來檢查,而不創建一個新的實例。 – 2012-03-08 05:58:48

0

您使用listField.insert意味着您要添加新的ChecklistData對象到列表中。這就是爲什麼你會在前一個下面得到一個全新的列表。而不是添加到_listData,請通過它並設置要檢查的ChecklistData

看起來這是一個自定義類,所以我不知道它會爲你做什麼。如果您在使用_listDataCheckboxFields,你可以做這樣的:

for (Enumeration e = _listdata.elements() ; e.hasMoreElements() ;) { 
    CheckboxField c = (CheckboxField)e.nextElement(); 
    c.setChecked(true); 
} 
+0

我試着與你的code.but IAM越來越喜歡這個異常的例外是:java.lang.ClassCastException.the結果沒有改變只列出元素是相同的因爲我沒有設定爲真。 – user1213202 2012-03-08 04:07:38

+0

感謝您的答案。我得到了解決方案。我試着這樣.. _listData.setElementAt(new ChecklistData(_elements [count],true),count);現在它爲我工作正常。 – user1213202 2012-03-08 04:42:47