Android onSelectedItemListener,具有列表视图选项\u模式\u多个
我是Android开发的新手,需要一些帮助 在我开始提问之前,谢谢你的帮助 好的,这是我的问题: 我有一个启用了选项_MODE _MULTIPLE的列表视图。 有了它,我可以在listView上选择一些元素 我想在我的代码中使用项目选择作为事件,例如,当项目被选中时,我想显示一个toast(项目“项目名称”被选中) 我不知道如何做到这一点,我读过一些关于onSelectedItemListener的文章,但我不知道如何实现和使用它 再次感谢你的帮助 下面是这个问题的解决方案:我列出了所选项目。要查看选择了哪个itel,我必须测试这个项目的id是否在列表中。如果在内侧,则选中该项目;如果未选中,则不选中该项目Android onSelectedItemListener,具有列表视图选项\u模式\u多个,android,events,listview,Android,Events,Listview,我是Android开发的新手,需要一些帮助 在我开始提问之前,谢谢你的帮助 好的,这是我的问题: 我有一个启用了选项_MODE _MULTIPLE的列表视图。 有了它,我可以在listView上选择一些元素 我想在我的代码中使用项目选择作为事件,例如,当项目被选中时,我想显示一个toast(项目“项目名称”被选中) 我不知道如何做到这一点,我读过一些关于onSelectedItemListener的文章,但我不知道如何实现和使用它 再次感谢你的帮助 下面是这个问题的解决方案:我列出了所选项目。要
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 );
}});
}
ListCapters.setOnItemClickListener(新的OnItemClickListener(){
public void onItemClick(AdapterView父级、视图、,
内部位置,长id){
如果(!mselectedDices.contains(位置))
{
mselectedDices.add(位置);
System.out.println(“列表:+mselectedDices”);
}
其他的
{mselectedDices.remove((整数)位置);
System.out.println(“列表:+mselectedDices”);
}
Log.i(null,“单击的项目位置=“+位置”);
}});
}
它应该是这样的
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();
}
lv.setOnItemClickListener(新的OnItemClickListener(){
public void onItemClick(AdapterView父级、视图、,
内部位置,长id){
//单击后,显示带有文本视图文本的祝酒词
Toast.makeText(getApplicationContext(),((TextView)视图).getText(),
吐司。长度(短)。show();
}
})) 你看过这本书了吗?它演示了如何使用
侦听器
。现在,这可能不是您想要的,但是从实现的角度来看,添加一个OnItemSelectedListener
是相同的:
listview.setOnItemSelectedListener(new OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
// do something...
}
}
//Edit2:事实上,这可能不会有什么不同,阅读
设置当前选定的项目如果处于触摸模式,则项目将不显示
被选中,但仍将正确定位。(……)
或者,您可以使用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);
}
}
}
List mSelectedIndices=new ArrayList();
//...
setOnItemClickListener(新的OnItemClickListener(){
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
如果(!mselectedDices.contains(位置)){
mselectedDices.add(位置);
}否则{
mselectedDices.remove((整数)位置);
}
}
}
我猜在某个时候你会想对所选的项目做些什么,这样你就可以在上面的列表上迭代并抓取单击/选择的对象。Hi coder_For_Life22,非常感谢你的回答。你的解决方案很好,但我需要知道我选择的项目,而不仅仅是单击它。你能建议我吗e另一个解决方案请?谢谢你..那么你需要知道行的ID吗?例如..行1,2,3,4我已经找到了解决方案,非常感谢你的帮助,这个论坛非常好…亲爱的MH.,非常感谢你的回答。coder_for_Life22给出的解决方案正在工作,但正如你所说,我需要
OnItemSelectedListener
我无法实现它。当我只通过OnItemSelectedListener
更改OnItemClickListener
时,第二个就不起作用了。我尝试放置一个System.out.println(“你好”)
并且它与OnItemClickListener
一起工作,但与OnItemSelectedListener
没有任何关系。你能详细说明一下“我无法实现”和“不工作”吗?我不能100%肯定这种方法在使用触摸交互时有效。当你显式调用setSelection(…)时会发生什么
?或者,您可以使用OnItemClickListener保留单击/选定项目的列表:只需添加一个项目(或至少添加索引)如果它还不在单击的项目列表中,则将其删除。再次感谢您的帮助。更准确地说,我可以实现此方法,但当我从listview中选择一个项目时,不会发生任何事情,我的println不会执行。当我调用setSelection(…),嗯,这是什么?恐怕我不明白添加索引的方法,你能给我更多的细节吗???我添加了一些代码来说明我在上面的评论中提到的基本思想。哦,谢谢,这是一个好主意。关于SetPositio(),当我明确地执行此操作时,不会发生任何事情。在表的哪个方面,是的,我需要知道选择了哪个项目,然后对此进行处理。我对此代码有一个小问题:!mSelectedIndices.contains(position)?mSelectedIndices.add(position):mSelectedIndices.remove((Integer)position);
我不懂,Eclipse给了我一些错误。非常感谢您的帮助。
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 );
}});
}