如何为 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的理解

高级控件安卓5——ListActivity

如何从 ListActivity 获取 onListItemClick 中的控件

[完成]notifyDataSetChanged() 不会自动更新 ListActivity

列表数据更改时更新Android ListActivity?

onListItemClick 不会(总是)被 ListActivity 调用