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