我是一个新手,正在学习Android开发。以下是一段代码:
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
Note selectedName = adapter.getItem(position);
adapter.removeItem(selectedName);
如您所见,位置表示所选项目的位置。这很好。但我更喜欢长按:
public boolean onContextItemSelected(MenuItem item) {
switch(item.getItemId()) {
case R.id.ctxmemu_delete:
** I need to use POSITION mentioned above! **
但是在这种方法中,getSelectedItemPosition
返回位置-9995845834585(或类似的内容)。或者它会出现错误(无法将光标移到位置 - 我在我的应用程序中使用SQL)
如何正确地从列表中获取位置? 附言:对我的糟糕英语感到抱歉 :(
更新: 我已经将此添加到我的SQL适配器中:
public int getPosition(){
return cursor.getPosition(); }
并修改为:
case R.id.ctxmemu_delete:
int position = adapter.getPosition();
Note seln = adapter.getItem(position);
adapter.removeItem(seln);
return true;
现在它能够工作……但我认为它非常丑陋。