我正在尝试使用代码
从所选组中获取主键“_id”groupPositionID是一个像这样初始化的全局变量 和IngredientListGroup_cursor是一个组游标,用于获取可扩展列表视图的组数据。
String groupPositionID=null;
Cursor IngredientListGroup_cursor;
在oncreate代码中:
public void onCreate(Bundle savedInstanceState) {
IngredientListGroup_cursor=helper.GetIngredientsList();
}
ExpandableIngredietnsList.setOnGroupClickListener(new OnGroupClickListener(){
@Override
public boolean onGroupClick(
ExpandableListView paramExpandableListView,
View paramView, int paramInt, long paramLong) {
// TODO Auto-generated method stub
groupPositionID=IngredientListGroup_cursor.getString(0);
Toast toast = Toast.makeText(getBaseContext(),groupPositionID ,Toast.LENGTH_LONG);
toast.show();
return false;
}
});
这是我的SQLhelper函数,用于从数据库中删除选定的组。
public Cursor GetIngredientsList(){
return(getReadableDatabase().rawQuery("SELECT _id,Ingredient_name FROM tblIngredients",null));
}
public Cursor DeleteIngredientsList_Item(String index){
String[] args={index};
return(getReadableDatabase().rawQuery("DELETE FROM tblIngredients WHERE _id=?",args));
}
我面临的问题是虽然我从光标获取所选组的ID(我能够看到它作为吐司)但是,为什么我无法从上下文菜单中删除它。
在从上下文菜单中选择删除时,以下代码应该正确执行
public boolean onOptionsItemSelected(MenuItem IngredientItem){
if(IngredientItem.getItemId()==R.id.addIngredient){
Intent i= new Intent(Ingredients_List.this,Ingredients_Add.class);
startActivity(i);
return(true);
}
else if (IngredientItem.getItemId()==R.id.deleteIngredient) {
if(groupPositionID!=null){
helper.DeleteIngredientsList_Item(groupPositionID);
return(true);
}
else{
Toast.makeText(getBaseContext(), "Select The Ingredient You want to delete", Toast.LENGTH_LONG).show();
}
}
return (super.onOptionsItemSelected(IngredientItem));
}
我从“groupPositionID”变量中获取选定的主键id值。准确的值也转移到数据库原始查询...仍然没有得到我期待的
Plz帮助ASAP我是android和java的新手
sdk信息(虽然不是必需的)
android:versionCode="1"
android:versionName="1.0"
android:minSdkVersion="8"
先谢谢
答案 0 :(得分:3)
public void DeleteIngredientsList_Item(long index){
String[] args = new String[]{Long.toString(index)};
Log.v("I am in", "SQLHelper");
getWritableDatabase().execSQL("DELETE FROM tblIngredients WHERE _id=?",args);
}
我修改了mysql helper中的删除代码
我的函数早先返回光标,这就是为什么它不起作用...实际查询中的meanz没有被执行...
休息很好.. :))