我有一个不接受onclick方法的自动生成列表

时间:2013-04-05 18:33:39

标签: android-layout listview

我有这个自动生成的列表

 <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(标签,“在这里的位置:”+位置);

1 个答案:

答案 0 :(得分: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;
} });

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