如何为 ListActivity 的 Listeview 项捕获长按事件?
Posted
技术标签:
【中文标题】如何为 ListActivity 的 Listeview 项捕获长按事件?【英文标题】:how to capture long press event for Listeview item of a ListActivity? 【发布时间】:2011-09-02 18:26:46 【问题描述】:假设我有一个 ListActivity ,现在我想在一个列表项上捕捉长按事件,因为我使用了以下代码块(在谷歌搜索后获取)但它不起作用!!!请帮忙!
public class InboxActivity extends ListActivity
this.getListView().setOnLongClickListener(new OnLongClickListener()
@Override
public boolean onLongClick(View v)
Toast.makeText(InboxActivity.this, "postion: " + getListView().getSelectedItemPosition(), Toast.LENGTH_SHORT).show();
return true;
);
我还在网上看到了一些带有 contextmenu 的代码,但我无法从上下文菜单打开的位置获取 listItem 的位置。
【问题讨论】:
【参考方案1】:我不知道你是否已经解决了你的问题,我几乎可以肯定你已经解决了,但这有效
this.getListView().setLongClickable(true);
this.getListView().setOnItemLongClickListener(new OnItemLongClickListener()
public boolean onItemLongClick(AdapterView<?> parent, View v, int position, long id)
//Do some
return true;
);
【讨论】:
【参考方案2】:this.getListView().setOnItemLongClickListener
应该可以工作。
【讨论】:
【参考方案3】: (viewitem).setOnLongClickListener(new OnItemLongClickListener()
@Override
public boolean onLongClick(View v)
//your code here
return false;
(这与上面的答案有点不同)
【讨论】:
假定使用的事件是 OnItemLongClickListener 而不是 OnLongClickListener。【参考方案4】:我想你想知道如何获得价值..
listView.setOnItemLongClickListener(new OnItemLongClickListener()
public boolean onItemLongClick(AdapterView parentView, View childView, int position, long id)
// this will provide the value
listView.getItemAtPosition(position)
return false;
)
【讨论】:
以上是关于如何为 ListActivity 的 Listeview 项捕获长按事件?的主要内容,如果未能解决你的问题,请参考以下文章
listActivity_EXpandbleActivity的理解
如何从 ListActivity 获取 onListItemClick 中的控件
[完成]notifyDataSetChanged() 不会自动更新 ListActivity