Android ListView長按彈出對話方塊
阿新 • • 發佈:2018-12-31
ListView長按彈出對話方塊可以用PopupWindow實現
今天記錄的是重寫onCreateContextMenu
和onContextItemSelected
實現彈出對話方塊,比前者簡單很多
上圖
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);
}
}