用于刷新列表视图的更新代码无效。
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
cd.open();
cd.deleteRow(id+1);
strings.remove(position);
lv_arr = (String[]) strings.toArray(new String[strings.size()]);
arrayAdapter.notifyDataSetChanged();
return false;
}
答案 0 :(得分:1)
您正在从列表视图传递所选项目的ID或位置,因此您应该知道列表视图项目的初始化位置为0,并且您可能有ID为1的商店项目,然后将其增加1。
所以在这种情况下,要么通过将id增加1来删除它,要么为所选项目创建一个对象,然后将其传递给删除。
对于第一个简单的情况检查,请在下面回答。
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id)
{
Log.v("long clicked", "pos: " + position);
cd.open();
//long i=id;
// i--;
cd.deleteRow(id + 1);
strings.remove(position)
lv_arr = (String[]) strings.toArray(new String[strings.size()]);
arrayAdapter.notifyDataSetChanged();
// CView.setVisibility(ListView.VISIBLE);
// Intent intent=new Intent(SqlView.this,SqlView.class);
// startActivity(intent);
// ret();
Toast.makeText(getApplicationContext(),"You have deleted a workout!", Toast.LENGTH_LONG).show();
return false;
}