1. 程式人生 > >Android ListView長按彈出對話方塊

Android ListView長按彈出對話方塊

ListView長按彈出對話方塊可以用PopupWindow實現
今天記錄的是重寫onCreateContextMenuonContextItemSelected實現彈出對話方塊,比前者簡單很多

上圖
這裡寫圖片描述

1 . 繫結ListView

registerForContextMenu(mUserList);

2 . 在onCreateContextMenu裡面新增標題和Item

@Override
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
        super.onCreateContextMenu
(menu, v, menuInfo); AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) menuInfo; String user = idToEmail(info.id); menu.setHeaderTitle(user); menu.add(0, REMOVE_ID, 0, R.string.context_menu_remove_account); }

3 . 在onContextItemSelected方法裡面進行處理

@Override
    public boolean onContextItemSelected(MenuItem item) {
        AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
        final String user = idToEmail(info.id); // final so listener can see value
        switch (item.getItemId()) {
            case
REMOVE_ID: AccountDb.getInstance().delete(user); refreshUserList(true); return true; default: return super.onContextItemSelected(item); } }