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);
}
}