@Override public boolean onContextItemSelected(final MenuItem item) { try { final AdapterContextMenuInfo menuInfo = (AdapterContextMenuInfo) item.getMenuInfo(); final Map<String, Object> map = (Map<String, Object>) getListView().getAdapter().getItem(menuInfo.position); final String address = (String) map.get("addr"); switch (item.getItemId()) { case R.id.wallet_addresses_context_archive: { MyRemoteWallet remoteWallet = application.getRemoteWallet(); if (remoteWallet == null) return true; remoteWallet.setTag(address, 2); application.saveWallet( new SuccessCallback() { @Override public void onSuccess() { EventListeners.invokeWalletDidChange(); } @Override public void onFail() {} }); return true; } case R.id.wallet_addresses_context_edit: { EditAddressBookEntryFragment.edit(getFragmentManager(), address.toString()); return true; } case R.id.wallet_addresses_context_show_qr: { final String uri = BitcoinURI.convertToBitcoinURI(address, null, null, null); final int size = (int) (256 * getResources().getDisplayMetrics().density); new QrDialog(activity, WalletUtils.getQRCodeBitmap(uri, size)).show(); return true; } case R.id.wallet_addresses_context_copy_to_clipboard: { AbstractWalletActivity.handleCopyToClipboard(activity, address.toString()); return true; } case R.id.wallet_addresses_context_default: { handleDefault(address); return true; } } } catch (Exception e) { e.printStackTrace(); } return false; }