如何實現由長按或點擊使用內置佈局和ListAdapter的ListActivity觸發的上下文菜單?如何在Android的ListActivity中實現上下文菜單?
39
A
回答
73
在onCreate方法調用registerForContextMenu這樣的:
registerForContextMenu(getListView());
,然後填充上onCreateContextMenu(ContextMenu menu, View view, ContextMenuInfo menuInfo)菜單。該menuInfo參數可以提供關於該項目是長期的點擊這樣的信息:
AdapterView.AdapterContextMenuInfo info;
try {
info = (AdapterView.AdapterContextMenuInfo) menuInfo;
} catch (ClassCastException e) {
Log.e(TAG, "bad menuInfo", e);
return;
}
long id = getListAdapter().getItemId(info.position);
,你通常的方式調用menu.add添加菜單項:
menu.add(0, MENU_ITEM_ID, 0, R.string.menu_string);
當用戶拿起一個選項,onContextItemSelected被調用。同樣onMenuItemSelected,這個事實在文檔中沒有明確解釋,除了說你使用其他方法接收來自上下文菜單的調用;請注意,不要共享ID。
在onContextItemSelected你可以得到阿霍德的MenuInfo的,因此通過調用getMenuInfo()選擇的項目的ID:
try {
info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
} catch (ClassCastException e) {
Log.e(TAG, "bad menuInfo", e);
return false;
}
long id = getListAdapter().getItemId(info.position);
+1
啊,謝謝。一直在網上尋找,但只能找到舊版本。這個與蛋糕完美搭配。 – 2009-04-23 11:51:12
14
5
listView = (ListView) findViewById(R.id.listpockets);
registerForContextMenu(listView);
public void onCreateContextMenu(android.view.ContextMenu menu, View v, android.view.ContextMenu.ContextMenuInfo menuInfo) {
//AdapterContextMenuInfo info = (AdapterContextMenuInfo)menuInfo;
menu.setHeaderTitle(getString(R.string.titleDelete));
menu.add(0, CommonUtil.CONTEXT_MENU__DELETE_ID, 0, getString(R.string.menuDelete));
};
@Override
public boolean onContextItemSelected(MenuItem item) {
if(item.getItemId() == CommonUtil.CONTEXT_MENU__DELETE_ID)
{
AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
long id = this.listView.getItemIdAtPosition(info.position);
Log.d(TAG, "Item ID at POSITION:"+id);
}
else
{
return false;
}
return true;
}
相關問題
- 1. ListActivity中的AndroidAnnotations和上下文菜單
- 2. 如何實現iOS中的上下文菜單,如Android中的上下文菜單
- 3. 實現上下文菜單到ListView?
- 4. Android上下文菜單不出現
- 5. 行在android中的上下文菜單?
- 6. 如何在Android中的菜單項上實現動態值
- 7. 如何實現NSCollectionView的上下文菜單
- 8. 如何實現自定義ListView的上下文菜單?
- 9. Android,如何創建上下文菜單...
- 10. Android如何知道上下文菜單何時完全呈現
- 11. 在Android中創建上下文菜單
- 12. Angular-ui + D3:如何實現上下文菜單(popover vs modal)?
- 13. 角2:如何實現懸停上下文菜單功能
- 14. 如何實現哪個上下文菜單被稱爲
- 15. 如何使用本地GWT(Java)實現上下文菜單?
- 16. Android菜單實現
- 17. 如何在ListView中實現自定義視圖的上下文菜單?
- 18. 上下文菜單android
- 19. Android上下文菜單
- 20. Android中的浮動上下文菜單
- 21. android中的上下文菜單
- 22. Android上下文菜單不再出現在模擬器中
- 23. 一個簡單的html上下文菜單的實現
- 24. 如何實現下拉菜單
- 25. 如何在android的listview上使用上下文菜單?
- 26. 如何在按鍵上實現上下文菜單而不是長按/輕按
- 27. 上下文菜單不出現在UIWebview
- 28. 在Android中打開一個浮動菜單(上下文菜單)?
- 29. 如何從上下文菜單中刪除默認的菜單上下文
- 30. 在Compass&jQuery中實現下拉菜單
您的修改已完全有效地改變了這個問題。只是問不同的問題可能會更好。 – 2009-01-14 20:25:55