0

我有这个自动生成的列表

 <ListView
    android:id="@android:id/list"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textIsSelectable="true"
    android:longClickable="true"    
    android:onClick="onClick"       />

并且调试器无法获取“android:onClick”方法,

我正在尝试获取“长按”的特定项目并将其删除,我的删除工作正常,我知道我需要获取

position = lv.getPositionForView(view);
(Object) getListAdapter().getItem(position);

但我不确定如何制作侦听器并将其附加到代码中以执行此操作。有任何想法吗?

我的 onCreate 方法中有这个:

final ListView lv = (ListView) findViewById(android.R.id.list);

    lv.setOnLongClickListener( new View.OnLongClickListener() { 
        @ Override 
        public boolean onLongClick(View v) {
            int position = lv.getPositionForView(v);
            Log.d(TAG, "position in here: " + position);
            if (getListAdapter().getCount() > 0) {
                Encouragement encouragement = (Encouragement) getListAdapter().getItem(position);
                datasource.deleteEncouragement(encouragement);
                adapter.remove(encouragement);
                adapter.notifyDataSetChanged();
            }

            return false;
        } 
    });

但它没有到达 Log.d(TAG, "position in here: " + position);

4

1 回答 1

0

使用此代码制定解决方案

import android.widget.AdapterView.OnItemLongClickListener;

lv.setOnItemLongClickListener(new OnItemLongClickListener() {

public boolean onItemLongClick(AdapterView<?> arg0, View arg1, int arg2,
            long arg3) {
        Log.d(TAG, "clicked on item "+arg1);
        return false;
} });

问题是我没有从列表中选择一个特定的项目,只是一个一般项目让编译器感到困惑。

于 2013-04-08T09:33:18.630 回答