1.组件初始化,适配器设置
/** Init UI*/ gvME=(PullToRefreshListView)findViewById(R.id.frame_list_view_me); /** 刷新事件*/ gvME.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener<ListView>() { @Override public void onRefresh(PullToRefreshBase<ListView> refreshView) { /** * 刷新用户设备列表 * 如果网络未连接则不刷新 * */ Boolean networkConnected=appContext.isNetworkConnected(); if(!networkConnected){ UIHelper.ToastMessage(appContext, R.string.network_not_connected); gvME.onRefreshComplete(); }else{ appContext.setProperty("me_refresh_time",new Date().toString()); loadLvMEData(lvMEHandler, UIHelper.LISTVIEW_ACTION_REFRESH); gvME.onRefreshComplete(); } } }); /** 托管给 ListView */ ListView lv=gvME.getRefreshableView(); /** 注册ContextMenu */ registerForContextMenu(lv); lv.setAdapter(listViewMEAdapter);
2.ContextMenu 重写
@Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { menu.setHeaderTitle("快捷操作"); menu.add(0, 1, 0, "删除该设备"); super.onCreateContextMenu(menu, v, menuInfo); } @Override public boolean onContextItemSelected(MenuItem item) { AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo(); try { MemberEquipment me=lvMEData.get(info.position-1); switch (item.getItemId()) { case 1: deleteME(me.getId()); break; default: break; } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return super.onContextItemSelected(item); } public void deleteME(final long id){ final Handler handler = new Handler(){ public void handleMessage(Message msg) { if(msg.what == 1){ Result result=(Result)msg.obj; if(result.OK()){ UIHelper.ToastMessage(appContext,"设备删除成功"); loadLvMEData(lvMEHandler,UIHelper.LISTVIEW_ACTION_REFRESH); }else { UIHelper.ToastMessage(appContext,result.getStatusMessage()); } } if(msg.what==-1) { UIHelper.ToastMessage(appContext,"设备删除出现异常"); } } }; new Thread(){ public void run() { Message msg =new Message(); try { Result result=appContext.deleteME(id); msg.what = 1; msg.obj = result; } catch (Exception e) { e.printStackTrace(); msg.what = -1; msg.obj = e; } handler.sendMessage(msg); } }.start(); }