ListView不会触发setOnLongClickListener,只会触发setOnItemClickListener

Ofe*_*hap 7 android listview android-listview onlongclicklistener

我希望在listView上有两种类型的点击 - onClick和LongClick.

我已经实现了这样:

this.listViewSub = (ListView) this.findViewById(R.id.listsub);

this.listViewSub.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(final AdapterView parent, final View view, final int position,
                final long id) { ... }    });

        // listen to long click - to share texts
    this.listViewSub.setOnLongClickListener(new OnLongClickListener() {
        @Override
        public boolean onLongClick(View v) { ... } });
Run Code Online (Sandbox Code Playgroud)

但它并没有解雇Long Click.任何人都知道为什么?

kan*_*pan 25

你必须启用 LongClickable

list.setLongClickable(true);
Run Code Online (Sandbox Code Playgroud)

list.setOnItemLongClickListener(new OnItemLongClickListener() {
        @Override
        public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
                final int arg2, long arg3) {

}
});
Run Code Online (Sandbox Code Playgroud)

  • 确保使用`setOnItemLongClickListener`,**NOT**`setOnLongClickListener` (6认同)

c0m*_*ing 6

@Vadim,你的listview的适配器是从BaseAdapter扩展的吗?如果是,那么还需要设置convertView.setLongClickable(true); 在getView()中.