我有这个自动生成的列表
<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(标签,“在这里的位置:”+位置);
答案 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;
} });
问题在于我没有从列表中选择特定项目,只是一般项目让编译器感到困惑。