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