Android PullToRefreshListView 长按 ContextMenu


 

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

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM