2011-09-16 78 views
1

我对Android很陌生,我有一个小问题。 我的ContextMenu有问题。我已经填充我的ListView与我的数据库条目,现在我魔杖,如果我longclick它,ContextMenu弹出,那里我想要删除或编辑我的数据库条目: 但我不明白我怎么可以找出什么entrie它是。如何从SimpleCursorAdapter获取信息到ContextMenu

这里是我的代码..

package de.retowaelchli.filterit.stats; 




    import de.retowaelchli.filterit.R; 
    import de.retowaelchli.filterit.database.ADFilterDBAdapter; 
    import android.app.ListActivity; 
    import android.database.Cursor; 
    import android.os.Bundle; 
    import android.view.ContextMenu; 
    import android.view.ContextMenu.ContextMenuInfo; 
    import android.view.MenuItem; 
    import android.view.View; 
    import android.widget.AdapterView; 
    import android.widget.SimpleCursorAdapter; 

    public class CreatedADFilters extends ListActivity { 

     //Variablen deklaration 
     private ADFilterDBAdapter mDbHelper; 

     public void onCreate(Bundle icicle) { 
      super.onCreate(icicle); 

      //Kontext-Menu registrieren 
      registerForContextMenu(findViewById(R.layout.list_layout)); 

      //Hier wir die Datenbank aufgerufen 
      mDbHelper = new ADFilterDBAdapter(this); 
      mDbHelper.open(); 
      fillData(); 

     } 

     private void fillData() { 

      // Get all of the notes from the database and create the item list 
      Cursor c = mDbHelper.getAllADFilter(); 
      startManagingCursor(c); 

      String[] from = new String[] { ADFilterDBAdapter.NAME, ADFilterDBAdapter.ROW_ID }; 
      int[] to = new int[] { R.id.label }; 

      // Now create an array adapter and set it to display using our row 
      SimpleCursorAdapter adname = 
       new SimpleCursorAdapter(this, R.layout.list_layout, c, from, to); 
      setListAdapter(adname); 

      mDbHelper.close(); 
     } 


     //ContextMenu erstellen und definieren 
     public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { 
      if (v.getId() == R.layout.list_layout) { 
       getMenuInflater().inflate(R.menu.createdadmenu, menu); 
      } 
      super.onCreateContextMenu(menu, v, menuInfo); 
     } 

     public boolean onContextItemSelected(MenuItem item) { 

      final AdapterView.AdapterContextMenuInfo info = 
        (AdapterView.AdapterContextMenuInfo) item.getMenuInfo(); 

      switch (item.getItemId()) { 
       case R.id.delete_adfilter: { 
        deleteAD(); 
        return true; 
       } 
       case R.id.edit_adfilter:{ 
        editAD(); 
        return true; 
      } 
      return super.onContextItemSelected(item); 
     } 
     } 

// THIS IS THE PART I DONT KNOW HOW TO REALIZE 
     private void deleteAD(){ 
     } 

     private void editAD(){ 
     } 
    } 

THX为你提前帮助!

问候

野生动物园

回答

1

onContextItemSelected()info局部变量具有包含从Cursor_ID值的id数据成员。 Here is a sample project演示如何使用它来删除基于ListView上下文菜单的项目。

+0

Thx你,我现在在Github上关注你很好的Project Samples! THX为您提供帮助! – safari