2010-08-22 39 views
1

我有一個ListActivity與名稱列表(雅各布,威爾,馬特等)。我有一個contextMenu可以讓用戶選擇編輯或刪除這個人。我知道如何找到id來執行編輯和刪除功能,但我無法弄清楚如何讓人的姓名被添加到意圖的附加功能中,或者在發生刪除時添加敬酒功能。如何從上下文菜單中獲取文本?

這裏的代碼片段,我使用的上下文菜單:


@Override 
public boolean onContextItemSelected(MenuItem item) { 
    AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo(); 

    switch(item.getItemId()) { 
    case DELETE_ID: 
     mDbHelper.deletePerson(info.id); 
     fillData(); 
     return true; 
    case EDIT_ID: 
     Cursor c = mCursor; 
     c.moveToPosition(info.position); 
     Intent i = new Intent(this, PersonEdit.class); 
     i.putExtra("_id", info.id); 
     startActivityForResult(i, ACTIVITY_EDIT); 
     return true; 
    } 
    return super.onContextItemSelected(item); 
} 

回答

0

謝謝麥斯。我以某種方式偶然發現了我自己問題的答案。它似乎工作正常。


@Override 
public boolean onContextItemSelected(MenuItem item) { 
    AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo(); 

    Cursor c = mCursor; 
    c.moveToPosition(info.position); 
    Long id = info.id; 
    String person = mCursor.getString(c.getColumnIndexOrThrow("person")); 

    switch(item.getItemId()) { 
    case DELETE_ID: 
     Toast.makeText(People.this, person + " has been deleted.", Toast.LENGTH_SHORT).show(); 
     mDbHelper.deletePerson(id); 
     fillData(); 
     return true; 
    case EDIT_ID: 
     Intent i = new Intent(this, PersonEdit.class); 
     i.putExtra("_id", id); 
     i.putExtra("person", person); 
     startActivityForResult(i, ACTIVITY_EDIT); 
     return true; 
    } 
    return super.onContextItemSelected(item); 
} 
0

複製粘貼從我的代碼:

AdapterView.AdapterContextMenuInfo info; 

try { 
    info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo(); 
} catch (ClassCastException e) { 
    Log.e(TAG, "bad menuInfo", e); 
    // Do something here. 
} 

Person person = (Person) getListAdapter().getItem(info.position); 

getListAdapter()是從ListActivity延伸活動。如果您沒有使用它,請獲取ListView,然後是適配器。

+0

感謝您的快速回復。我仍然失去了一些東西。我正在用SQLite查詢填充列表適配器。我沒有人物來實例化。 我的EDIT_ID功能的前幾行顯示了我從SQLite數據庫中獲取該人的名字的嘗試。我知道我很想念。 – alockrem 2010-08-22 15:25:50

相關問題