云端下载数据

package com.avicsafety.safety_examine.activity;

import android.text.Editable;
import android.text.TextUtils;
import android.text.TextWatcher;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.Toast;

import com.avicsafety.lib.Adapter.CommonAdapter;
import com.avicsafety.lib.Adapter.ViewHolder;
import com.avicsafety.lib.CustomView.AvicButton;
import com.avicsafety.lib.CustomView.AvicListView;
import com.avicsafety.lib.tools.KeyBoardUtils;
import com.avicsafety.lib.tools.L;
import com.avicsafety.safety_examine.R;
import com.avicsafety.safety_examine.conf.Constants;
import com.avicsafety.safety_examine.interfaces.OnNetworkAccessToListListener;
import com.avicsafety.safety_examine.model.M_Company;
import com.avicsafety.safety_examine.model.M_LoginInfo;
import com.avicsafety.safety_examine.service.CompanyManager;
import com.avicsafety.safety_examine.service.LoginManager;

import org.xutils.http.RequestParams;
import org.xutils.view.annotation.ContentView;
import org.xutils.view.annotation.ViewInject;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by Administrator on 2017/4/21.
 */
@ContentView(R.layout.activity_servercompany)
public class ServerCompanyActivity extends BaseActivity implements View.OnClickListener {

    private CommonAdapter<M_Company> mAdapter;
    private List<M_Company> mData;
    private boolean choose_mode = false;  //决定是否为多选模式
    private CompanyManager companyManager = new CompanyManager();
    private String keyword;

    //设置页数
    private int PageIndex = 1;
    private int PageSize = 30;
    private List<M_Company> SelectedData = new ArrayList<>();

    //获取登录人的信息


    M_LoginInfo loginInfo = LoginManager.getLoginInfo();
   private String username = loginInfo.getUserName();
   private String password = loginInfo.getPassword();

    @Override
    protected void InitializeComponent() {
        super.InitializeComponent();
    }

    @Override
    protected void InitializeData() {
        super.InitializeData();



        mData = new ArrayList<M_Company>();
//万能Adapter的用法
        mAdapter = new CommonAdapter<M_Company>(getApplicationContext(), mData, R.layout.item_servercompany) {
            @Override
            public void convert(ViewHolder helper, M_Company item) {
                helper.setText(R.id.tv_servercompany_name, item.getQymc());
                ImageView imageView = helper.getView(R.id.iv_servercompany_image);
                if (choose_mode) {
                    if (SelectedData.contains(item)) {
                        imageView.setImageResource(R.mipmap.iv_check);
                    } else {
                        imageView.setImageResource(R.mipmap.iv_uncheck);
                    }
                } else {
                    imageView.setImageResource(R.mipmap.iv_company);
                }
            }

        };
        list_view.setAdapter(mAdapter);
    }

    @Override
    protected void InitializeEvent() {
        super.InitializeEvent();
        //ListView的条目的点击事件
        list_view.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                if (choose_mode) {
                    ImageView imageView = (ImageView) view.findViewById(R.id.iv_servercompany_image);
                    if (SelectedData.contains(mData.get(position))) {
                        SelectedData.remove(mData.get(position));
                        imageView.setImageResource(R.mipmap.iv_uncheck);
                    } else {
                        SelectedData.add(mData.get(position));
                        imageView.setImageResource(R.mipmap.iv_check);
                    }
                }
            }
        });
        //搜索框EditText监听其中文字的变化
        et_search_server.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {

            }

            @Override
            public void afterTextChanged(Editable s) {
                if (s.length() == 0) {
                    iv_delete.setVisibility(View.GONE);
                } else {
                    iv_delete.setVisibility(View.VISIBLE);
                }
            }
        });
        iv_delete.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                et_search_server.setText("");
            }
        });
            //搜索按钮的点击事件,网络获取数据
        iv_search_btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                loadingDialog.show();
                KeyBoardUtils.closeKeybord(et_search_server,oThis);//关闭键盘
                if (!TextUtils.isEmpty(et_search_server.getText().toString())) {
                    PageIndex = 1;  //页数复位
                    keyword = et_search_server.getText().toString(); //关键字复位
                    mData.clear(); //清空已经有的数据
                    loadDataByServ(keyword); //获取数据
                }
            }
        });

        list_view.setOnLoadingListener(new AvicListView.IsLoadingListener() {
            @Override
            public void onLoad() {
                PageIndex++;  //页数加一
                loadDataByServ(keyword); //获取数据
            }
        });

        btn_select_all.setOnClickListener(this);
        btn_cancle.setOnClickListener(this);
        btn_download.setOnClickListener(this);

    }
        //网络获取数据
    private void loadDataByServ(String company_name) {
        companyManager.getListByServ(getParam(company_name), new OnNetworkAccessToListListener<M_Company>() {
            @Override
            public void onSuccess(List<M_Company> list) {
                appendData(list);//刷新数据
                L.i("数据获取完毕");
                loadingDialog.close();//进度条关闭
            }

            @Override
            public void onFail(String error) {
                L.e(username+password);
                Toast.makeText(oThis,"获取数据失败",Toast.LENGTH_SHORT).show();
                loadingDialog.close();
            }
        });
    }

    private RequestParams getParam(String company_name) {
        RequestParams request = new RequestParams("http://218.25.87.62:208/service/phoneCompany_one");
        request.setConnectTimeout(60000);
        request.addParameter("userName",username);
        request.addParameter("password",password);
        request.addParameter("version","");
        request.addParameter("pagesize", PageSize+"");
        request.addParameter("pageIndex", PageIndex+"");
        request.addParameter("return_type","123");
        return request;
    }


    /**
     * 追加数据 翻页专用
     * @param _data
     */
    private void appendData(List<M_Company> _data){
        //TODO 此处更新数据代码
        if(_data==null||_data.size()==0){
            list_view.setOnLoadingListener(null);
            list_view.complateLoad();
            Toast.makeText(oThis,"没有更多数据了",Toast.LENGTH_SHORT).show();
            return;
        }
        if(_data.size()<PageSize){
            list_view.setOnLoadingListener(null);
        }
        for(M_Company model:_data){
            mData.add(model);
        }
        mAdapter.setmDatas(mData);
        mAdapter.notifyDataSetChanged();
        list_view.complateLoad();
    }

    /**
     * 刷新数据
     */
    private void refreshData(){
        mAdapter.setmDatas(mData);
        mAdapter.notifyDataSetChanged();
        list_view.complateLoad();
    }

    @Override
    public void onClick(View v) {
        switch(v.getId()){
            case R.id.btn_select_all:  //全选
                SelectedData.clear();
                SelectedData.addAll(mData);
                refreshData();
                break;
            case R.id.btn_cancle:    //取消
                SelectedData.clear();
                SetMultipleChooseMode(false);
                refreshData();
                break;
            case R.id.btn_download:{   //下载
                download_data();
            }
            break;
        }
    }

    private void download_data() {
        for(M_Company model : SelectedData){
            companyManager.update(model);
        }
    }

    private void switch_mode(){
        if(choose_mode){
            SetMultipleChooseMode(false);
        }else{
            SetMultipleChooseMode(true);
        }
    }

    /**
     * 设置多选模式
     * @param state
     */
    private void SetMultipleChooseMode(boolean state){
        choose_mode = state;
        ll_common_list_btnlayer.setVisibility(state?View.VISIBLE:View.GONE);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu_downcompany,menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case R.id.action_choose:{
                switch_mode();
            }
            break;
        }

        return super.onOptionsItemSelected(item);
    }

    @ViewInject(R.id.lv_servercompany)
    private AvicListView list_view;
    @ViewInject(R.id.et_search_server)
    private EditText et_search_server;
    @ViewInject(R.id.iv_delete)
    private ImageView iv_delete;
    @ViewInject(R.id.iv_search_btn)
    private ImageView iv_search_btn;

    @ViewInject(R.id.btn_select_all)
    private AvicButton btn_select_all;

    @ViewInject(R.id.btn_cancle)
    private AvicButton btn_cancle;

    @ViewInject(R.id.btn_download)
    private AvicButton btn_download;

    @ViewInject(R.id.ll_common_list_btnlayer)
    private LinearLayout ll_common_list_btnlayer;


}

转载于:https://my.oschina.net/u/3213186/blog/884921

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值