让我假设我有一个ListActivity,现在我想在列表项上捕获长按事件,因为我使用了以下代码块(google后获取)但它不起作用!请帮忙!
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的位置。
答案 0 :(得分:61)
我不知道你是否已经解决了你的问题,我几乎可以肯定你已经解决了这个问题,但这很有效。
this.getListView().setLongClickable(true);
this.getListView().setOnItemLongClickListener(new OnItemLongClickListener() {
public boolean onItemLongClick(AdapterView<?> parent, View v, int position, long id) {
//Do some
return true;
}
});
答案 1 :(得分:6)
this.getListView().setOnItemLongClickListener
应该有效。
答案 2 :(得分:4)
(viewitem).setOnLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onLongClick(View v) {
//your code here
return false;
}
}
(这与上述答案略有不同)
答案 3 :(得分:3)
我想你想知道如何获得价值..
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;
}
})