BaseAdapter onLongClick没有被触发

时间:2014-03-12 11:35:13

标签: android listview

我想在setOnLongClickListener方法返回的视图上调用getView(),但它似乎不起作用,这是我的代码:

@Override
public View getView(final int position, View convertView, ViewGroup parent) {
    ViewHolder viewHolder;
    if (convertView == null) {
        convertView = inflater.inflate(R.layout.list_item, parent, false);
        viewHolder = new ViewHolder();
        viewHolder.date = (TextView) convertView.findViewById(R.id.date);
        convertView.setTag(viewHolder);
    }
    viewHolder = (ViewHolder) convertView.getTag();
    convertView.setLongClickable(true);
    convertView.setOnLongClickListener(new OnLongClickListener() {

        @Override
        public boolean onLongClick(View v) {
            // this code does not execute
            return true;
        }
    });
    return convertView;
}

1 个答案:

答案 0 :(得分:0)

您应该将长按一下监听器添加到listview,而不是在适配器内。像这样:

listView.setOnItemLongClickListener(new OnItemLongClickListener() {

            public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
                    int position, long id) {
                // TODO Auto-generated method stub

                return true;
            }
        });