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);
                }
            }
        };

但是我也得到了旧列表的结果。在旧列表下方,这个新列表附带了检查。如何解决这个问题。请给出你的想法。我在哪里做错了。提前谢谢..

4

2 回答 2

0

感谢您的所有建议。我现在解决了我的问题..解决方案是..

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);

                }
            }
        };
于 2012-03-08T04:46:41.367 回答
0

您的使用listField.insert意味着您正在将新ChecklistData对象添加到列表中。这就是为什么您会在之前的列表下方获得一个全新的列表。不要添加 to _listData,而是通过它并设置ChecklistData要检查的 。

看起来那是一个自定义类,所以我不知道你需要做什么。如果你使用CheckboxFields in _listData,你可以这样做:

for (Enumeration e = _listdata.elements() ; e.hasMoreElements() ;) {
    CheckboxField c = (CheckboxField)e.nextElement();
    c.setChecked(true);
}
于 2012-03-07T16:59:22.283 回答