2012-02-24 79 views
1

我試圖使用代碼如何從擴展列表視圖

groupPositionID是一個全局變量初始化這樣 和IngredientListGroup_cursor是一組光標它取了來從選定的組中的主鍵「_id」刪除組對於expanable列表視圖組的數據。

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)); 

} 

我現在面臨的問題是THA儘管我收到了來自光標所選組的ID(1M可以看到,作爲土司),但是,爲什麼我不能夠刪除從上下文菜單中。關於選擇從上下文菜單中刪除下面的代碼應該正確執行

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幫助儘快我新的Android和Java的

SDK的信息(儘管不是必須)

android:versionCode="1" 
android:versionName="1.0" 
android:minSdkVersion="8" 

由於提前

回答

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幫手

我的功能早些時候返回光標這就是爲什麼它是在實際查詢沒有得到執行不工作... meanz ...

剩下的就是確定.. :)