如何实现onClick事件,同时仍然获得上下文菜单

时间:2014-09-15 12:36:25

标签: android listener contextmenu onclicklistener

我创建了一个自定义列表,其中包含可以收缩或扩展的子项。

为了做到这一点,我在每个项目添加到列表时设置了onclick侦听器,以便根据当前状态进行扩展或缩进。

我遇到的问题是现在上下文菜单无效。

我希望通过长按来显示上下文菜单,并在正常点击时展开/收缩。

这可能吗?

1 个答案:

答案 0 :(得分:1)

文档:http://developer.android.com/reference/android/widget/AdapterView.OnItemLongClickListener.html

您必须在ListView中设置setOnItemLongClickListener():

listView.setOnItemLongClickListener(new OnItemLongClickListener() {

    public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
            int pos, long id) {
        Log.v("long clicked","pos: " + pos);

        return true;
    }
    }); 

列表中每个项目的XML(如果您使用自定义XML)也必须具有android:longClickable="true"(或者您可以使用便捷方法listView.setLongClickable(true);)。这样你就可以得到一个列表,其中只有一些项目响应了longclick。