2013-01-10 65 views
0

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

+0

您在ListCellRenderer中使用? – neb1

+0

@ neb1是的,我已经使用ListCellRenderer的 –

+0

可能重复的[列表使用LWUIT复选框](http://stackoverflow.com/questions/2810630/list-with-checkbox-using-lwuit) –

回答

1

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

1

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

+0

但如何idetify deseletion?该列表在取消选择时不会产生任何ActionEvent。 –

+0

它应该产生一个点击事件,所以第一次点击要选择,而对于特定数量的第二次点击,应取消。或者,您可以查看lwuit的通用列表单元格渲染器。我使用这个从PIM联系人列表中拉取的SMS应用程序。 – Ajibola

+0

@Ajiblola谢谢,我会尝试。 –

1

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

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

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

相关问题