2012-03-07 250 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