Android 如何从可展开列表视图中删除组
我正在尝试使用代码从所选组获取主键“\u id” groupPositionID是一个全局变量,初始化如下 IngredientListGroup\u游标是一个组游标,用于获取可扩展列表视图的组数据Android 如何从可展开列表视图中删除组,android,expandablelistview,Android,Expandablelistview,我正在尝试使用代码从所选组获取主键“\u id” groupPositionID是一个全局变量,初始化如下 IngredientListGroup\u游标是一个组游标,用于获取可扩展列表视图的组数据 String groupPositionID=null; Cursor IngredientListGroup_cursor; 在oncreate代码中: public void onCreate(Bundle savedInstanceState) { IngredientListGroup_c
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(我可以将其视为toast),但是,为什么我不能从上下文菜单中删除它呢
从上下文菜单中选择“删除”时,应正确执行以下代码
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值。。准确的值也会传输到数据库原始查询。。。仍然没有得到我所期望的
请尽快帮助我对android和java都是新手
sdk信息(尽管不是必需的)
提前谢谢
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未被执行
休息时间还行……)
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);
}