我已经创建了一个数据库。一切正常,除了当我删除列表视图上的项目时,该项目消失了,但是当我重新打开它时,该项目仍然存在,因为这不会从数据库中删除。我的 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);
}
}
在此提醒中是包含 oncreate() 方法和 dleteentries 方法的类的名称。
我知道问题出在 String s 中(我在详细课程中的案例 1 中创建)但我不知道如何解决这个问题。请帮助我。我尝试了很多但仍然无法解决这个问题。