首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在ListView上同时实现onClick和onLongClick监听器?

如何在ListView上同时实现onClick和onLongClick监听器?
EN

Stack Overflow用户
提问于 2018-08-14 08:29:04
回答 1查看 321关注 0票数 -2

我希望ListView的项目反应在通常的点击和长点击。我试图设置两个侦听器,但它告诉我第一个侦听器不能应用于第二个侦听器。下面是我的代码的一部分:

代码语言:javascript
复制
    AdapterView.OnItemClickListener itemClickListener = new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
        TextView product = (TextView) view;
                ...
    }
};

AdapterView.OnItemLongClickListener itemLongClickListener = new AdapterView.OnItemLongClickListener() {
    @Override
    public boolean onItemLongClick(AdapterView<?> adapterView, View view, int i, long l) {
        TextView product = (TextView) view;
        product.setBackgroundColor(Color.GREEN);
        return true;
    }
};

ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(
        this,
        android.R.layout.simple_list_item_1,
        arrayOfNames);

ListView itemsView = (ListView)findViewById(R.id.items);
itemsView.setOnItemClickListener(itemClickListener);
itemsView.setOnItemClickListener(itemLongClickListener);
EN

回答 1

Stack Overflow用户

发布于 2018-08-14 08:37:24

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

代码语言:javascript
复制
lv.setOnItemLongClickListener(new OnItemLongClickListener() {
        @Override
        public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
                int pos, long id) {
            // TODO Auto-generated method stub

            Log.v("long clicked","pos: " + pos);

            return true;
        }
    }); 

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51832195

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档