Как захватить длинное событие пресса для элемента Listeview ListActivity?
позволяет предположить, что у меня есть ListActivity, теперь я хочу поймать длинное событие прессования в элементе списка, потому что я использовал следующий блок кода (get after googled), но он не работает!!! пожалуйста помоги!
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;
}
});
}
Я также вижу некоторый код в онлайн-режиме с контекстным меню, но там я не получаю способ получить позицию 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;
}
}
(это немного отличается от приведенных выше ответов)
Ответ 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;
}
})