尝试从列表视图和数据库中删除所选项目,但我的代码将删除前一项而不是所选项

时间:2016-07-11 05:33:02

标签: android listview

用于刷新列表视图的更新代码无效。

 @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;
}

1 个答案:

答案 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;
   }