我是Android开发的新手,我需要一些帮助。
在我开始提问之前,谢谢你的帮助。
好的,这是我的问题:
我有一个启用了CHOICE_MODE_MULTIPLE的listView。 有了这个,我可以在listView上选择一些元素。
我想在我的代码中使用项目选择作为事件,例如,当选择项目时,我想显示一个toast(选项“Item of Item”)。
我不知道如何做到这一点,我已经阅读了有关onSelectedItemListener的内容,但我不知道如何实现和使用它。
再次感谢您的帮助。
以下是此问题的解决方案:我列出了所选项目。要查看选择了哪个itel,我必须测试此项的id是否为列表。如果在内,则选择该项目,否则,不选择该项目。
listeCapteurs.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
if (!mSelectedIndices.contains(position))
{
mSelectedIndices.add(position);
System.out.println("Liste:" +mSelectedIndices );
}
else
{mSelectedIndices.remove((Integer)position);
System.out.println("Liste:" +mSelectedIndices );
}
Log.i(null, "Clicked item position = " + position );
}});
}
答案 0 :(得分:1)
您是否阅读了'Hello ListView demo'?它演示了如何使用OnItemClickListener
。现在,这可能不是您所追求的,但从实施的角度来看,添加OnItemSelectedListener
是完全相同的:
listview.setOnItemSelectedListener(new OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
// do something...
}
}
根据以下评论进行编辑。
在填充列表后,您可以尝试将选择显式设置为特定项,以查看是否触发OnItemSelected。假设您的列表中至少有两个项目:
listview.setSelection(1); // select second item
// Edit2:实际上,阅读documentation for setSelection可能不会产生任何影响。
设置当前选定的项目。 如果处于触摸模式,则该项目不会 被选中但它仍然会被恰当地定位。 (...)
或者,您可以使用OnItemClickListener自行跟踪所选项目,假设点击项目时没有其他操作 - 这在仅具有触摸屏的设备上有意义,因为无法区分“选择”并'点击'。
List<Integer> mSelectedIndices = new ArrayList<Integer>();
//...
listview.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if (!mSelectedIndices.contains(position)) {
mSelectedIndices.add(position);
} else {
mSelectedIndices.remove((Integer)position);
}
}
}
我猜你在某些时候想要对所选项目做些什么,所以你可以迭代上面的列表并抓住被点击/选中的对象。
答案 1 :(得分:0)
看起来应该是这样的......
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// When clicked, show a toast with the TextView text
Toast.makeText(getApplicationContext(), ((TextView) view).getText(),
Toast.LENGTH_SHORT).show();
}
});