如何从Java ME LWUIT复选框列表中获取多个选定项目

时间:2013-01-10 15:54:15

标签: list java-me checkbox lwuit

我正在用Java开发一个应用程序来发送短信。它使用PIM库来获取手机联系人并使用CheckBox列表显示它。用户可以选择多个联系人。 我使用Vector来存储list.getSelectedItem()上使用ActionEvent获得的所选元素。这种方法的问题在于,当用户取消选择项目时,无法删除该项目。 有没有简单的方法可以从Vector中删除取消选择的项目。

3 个答案:

答案 0 :(得分:1)

我认为因为你使用ListcellRenderer实现了你在列表中使用函数setRenderer。此功能适用于您工作的列表。您从向量中删除但不更新列表(原始列表中使用的ListcellRenderer)。因此,无论何时从向量中删除,都需要再次更新列表(并调用setRenderer(..))。

答案 1 :(得分:1)

我猜你不能从向量中删除一个取消选择的数字,因为一旦它被添加到向量中你就无法识别它的索引。您可以更改数据结构并使用Hashtable,这样您就可以使用密钥,例如用于标识条目的数字以及何时取消选择该条目,只需查找密钥并将其删除即可。

答案 2 :(得分:1)

有能力检查和取消选中列表项,您可以按照以下步骤使用:

  • 将一个布尔变量添加到列表PIM对象
  • 向渲染器添加一个复选框,从布尔变量
  • 获取其值
  • 然后当用户点击每个项目时,使用列表侦听器捕获它。
  • 最后在侦听器中将布尔值的状态更改为true或false。

    之后你有一个列表,其布尔变量显示用户选择了哪些元素。