как перехватить длинное событие нажатия для элемента списка просмотра ListActivity? - PullRequest
28 голосов
/ 26 мая 2011

давайте предположим, что у меня есть ListActivity, теперь я хочу перехватить длинное нажатие на элемент списка, для этого я использовал следующий блок кода (получить после 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;
                        }
                    });

            }

Я также вижу в сети некоторый код с contextmenu, но там я не могу получить позицию listItem из того места, где открыто контекстное меню.

Ответы [ 4 ]

61 голосов
/ 16 июля 2011

Я не знаю, если вы уже решили свою проблему, я почти уверен, что вы сделали, но это работает

this.getListView().setLongClickable(true);
this.getListView().setOnItemLongClickListener(new OnItemLongClickListener() {
    public boolean onItemLongClick(AdapterView<?> parent, View v, int position, long id) {
        //Do some
        return true;
    }
});
6 голосов
/ 26 мая 2011

this.getListView().setOnItemLongClickListener должно работать.

4 голосов
/ 26 августа 2012
    (viewitem).setOnLongClickListener(new OnItemLongClickListener() {           
        @Override
        public boolean onLongClick(View v) {
            //your code here
            return false;
        }
    }

(это немного отличается от приведенных выше ответов)

3 голосов
/ 16 ноября 2012

Я думаю, вы хотите знать, как получить значение ..

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;
                    }

                })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...