从列表视图中删除项目,但这不会从数据库中删除项目

时间:2013-08-15 12:14:34

标签: android

我已经创建了一个数据库。除了当我删除listview上的项目时项目消失但当我重新打开它时,项目仍然存在,因为这不会从数据库中删除。我的一切正常工作。我的oncreate方法如下:

 public void onCreate(SQLiteDatabase db) {

        db.execSQL("CREATE TABLE "+ Table_Name + "(" +Column_Id+" INTEGER PRIMARY KEY AUTOINCREMENT, " + name +" TEXT NOT NULL, "
        + date +" TEXT NOT NULL, "+ time +" TEXT NOT NULL, "+ location +" TEXT );");
        Log.d("in on create", "");


    }

我使用以下方法从数据库中删除项目

public void deleteEntries(String item) {
    Log.d("in del", "");

    ourSQLiteDatabase.delete(Table_Name, name+" =?"+" AND "+date +" =?"+" AND "+time+" =?"+" AND "+location + "=?",new String[] {item});

}

我在另一个包含列表的类Detail.java中调用了上面的方法。

public class Detail extends Activity{
ListView listView;
    int position;
     ArrayAdapter<String> aa;

@Override
protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.detail);
    listView = (ListView)findViewById(R.id.listView);
    registerForContextMenu(listView);
    Reminder getInfo=new Reminder(this);
    getInfo.open();
    ArrayList<String> mydata=getInfo.getData();
    getInfo.close();
     aa=new ArrayAdapter<String(this,android.R.layout.simple_list_item_1,mydata);
          listView.setAdapter(aa);
    listView.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                long arg3) {
            position = arg2;
            openContextMenu(listView); 


        }
    } );


}
    public void onCreateContextMenu(ContextMenu menu, View v,
        ContextMenuInfo menuInfo) {

    super.onCreateContextMenu(menu, v, menuInfo);
    menu.setHeaderTitle("Choose Action");
    menu.add(0, 1, 0, "Delete");
    menu.add(0, 2, 1, "Edit");
}

@Override
public boolean onContextItemSelected(MenuItem item) {

      switch (item.getItemId()) {
              case 1:
                  Log.d("in case 1", "");
                    String s = aa.getItem(position).toString();
                        Reminder del = new Reminder(this)
                del.open();
                del.deleteEntries(s);   
                del.close();
                        aa.remove(s);
                        aa.notifyDataSetChanged();
                        Toast.makeText(this, "deleted", Toast.LENGTH_SHORT).show();
                        return(true);
             case 2:
                 Toast.makeText(this, "edit", Toast.LENGTH_SHORT).show();
                   return(true);   
      }
    return super.onContextItemSelected(item);

}

}

在这个提醒中是conatin oncreate()方法和dleteentries方法的类的名称。

我知道问题出现在String中(我在详细类中的情况1中创建)但我不知道如何解决该问题.plz帮助我。我尝试了很多但仍然无法解决这个问题。

1 个答案:

答案 0 :(得分:0)

   ourSQLiteDatabase.delete(Table_Name, name+" =?",new String[] {item});
相关问题