package cn.flightfeather.thirdapp.dataanalysis; import android.content.Context; import android.graphics.Color; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.support.v7.widget.DividerItemDecoration; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.Spinner; import android.widget.TextView; import android.widget.Toast; import com.ping.greendao.gen.DomainitemDao; import org.greenrobot.greendao.query.QueryBuilder; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import cn.flightfeather.thirdapp.CommonApplication; import cn.flightfeather.thirdapp.R; import cn.flightfeather.thirdapp.adapter.AllListViewAdapter; import cn.flightfeather.thirdapp.adapter.AllRecyclerViewAdapter; import cn.flightfeather.thirdapp.bean.entity.Domainitem; import cn.flightfeather.thirdapp.bean.entity.Evaluation; import cn.flightfeather.thirdapp.bean.vo.TaskVo; import cn.flightfeather.thirdapp.httpservice.EvaluationService; import cn.flightfeather.thirdapp.httpservice.TaskService; import cn.flightfeather.thirdapp.util.CommonUtils; import cn.flightfeather.thirdapp.util.Constant; import cn.flightfeather.thirdapp.util.Domain; import retrofit2.Call; import retrofit2.Callback; import retrofit2.Response; /** * A simple {@link Fragment} subclass. */ public class AnysisRankFragment extends Fragment implements View.OnClickListener, AdapterView.OnItemSelectedListener { private CommonApplication application; private Context context; private TaskService taskService; private EvaluationService evaluationService; private List taskVoList = new ArrayList<>();//所有顶层任务 private List sceneList = new ArrayList<>();//场景 private List sceneEvaluationList = new ArrayList<>();//场景评分排名 private List townEvaluationList = new ArrayList<>();//街道评分排名 //Spinner private Spinner sp_top_task; private Spinner sp_scene; private AllListViewAdapter topTaskAdapter = null; private AllListViewAdapter sceneAdapter = null; //TextView private TextView tv_no; private TextView tv_scene_rank; private TextView tv_town_rank; //RecyclerView private RecyclerView rv_rank; private HashMap> rankAdapterMap = new HashMap<>(); public AnysisRankFragment() { // Required empty public constructor } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(R.layout.fragment_anysis_rank, container, false); } @Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); application = (CommonApplication) getActivity().getApplication(); context = getContext(); taskService = application.getRetrofit().create(TaskService.class); evaluationService = application.getRetrofit().create(EvaluationService.class); initUI(view); initSpinnerData(); initSpinner(view); initRecyclerView(view); } @Override public void onHiddenChanged(boolean hidden) { super.onHiddenChanged(hidden); } @Override public void onDestroy() { super.onDestroy(); } private void initUI(View view) { tv_no = (TextView) view.findViewById(R.id.tv_no); tv_scene_rank = (TextView) view.findViewById(R.id.tv_scene_rank); tv_town_rank = (TextView) view.findViewById(R.id.tv_town_rank); tv_scene_rank.setOnClickListener(this); tv_town_rank.setOnClickListener(this); tv_scene_rank.setSelected(true); } /** * 下拉框数据 */ private void initSpinnerData() { //顶层任务 Call> getTopClassTaskList = taskService.getTaskProgress("0"); getTopClassTaskList.enqueue(new Callback>() { @Override public void onResponse(Call> call, Response> response) { if (response.body() != null) { taskVoList.addAll(response.body()); topTaskAdapter.notifyDataSetChanged(); // sp_top_task.setSelection(0); } } @Override public void onFailure(Call> call, Throwable t) { } }); //场景 DomainitemDao domainitemDao = application.getDaoSession().getDomainitemDao(); QueryBuilder queryBuilder = domainitemDao.queryBuilder() .where(DomainitemDao.Properties.Dcguid.eq(Domain.DOMAINGUID_SCENSETYPE)) .orderAsc(DomainitemDao.Properties.Value); sceneList = new ArrayList<>(); sceneList.addAll(queryBuilder.list()); } /** * 下拉框数据绑定 * @param view */ private void initSpinner(View view) { sp_top_task = (Spinner) view.findViewById(R.id.sp_top_task); sp_scene = (Spinner) view.findViewById(R.id.sp_scene); initAdapter(); sp_top_task.setOnItemSelectedListener(this); sp_scene.setOnItemSelectedListener(this); // sp_top_task.setSelection(0); // sp_scene.setSelection(0); } /** * 下拉框数据适配器 */ private void initAdapter() { topTaskAdapter = new AllListViewAdapter((ArrayList) taskVoList, R.layout.item_spinner_simple_text) { @Override public void bindView(ViewHolder holder, TaskVo obj) { holder.setText(R.id.tv_item, obj.getName()); } }; sp_top_task.setAdapter(topTaskAdapter); topTaskAdapter.notifyDataSetChanged(); sceneAdapter = new AllListViewAdapter((ArrayList) sceneList, R.layout.item_spinner_simple_text) { @Override public void bindView(ViewHolder holder, Domainitem obj) { holder.setText(R.id.tv_item, obj.getText()); } }; sp_scene.setAdapter(sceneAdapter); sceneAdapter.notifyDataSetChanged(); } /** * 排名列表 * @param view */ private void initRecyclerView(View view) { rv_rank = (RecyclerView) view.findViewById(R.id.rv_rank); final String scenetypeid = ((Domainitem) sp_scene.getSelectedItem()).getValue(); AllRecyclerViewAdapter adapter = new AllRecyclerViewAdapter(sceneEvaluationList, R.layout.item_scene_rank, context) { @Override public void bindView(AllRecyclerViewAdapter.MyViewHolder holder, Evaluation obj, boolean bool, int position) { holder.setText(R.id.tv_no, String.valueOf(position + 1)) .setImageResource(R.id.iv_scene_type, CommonUtils.getIconBySceneType(scenetypeid)) .setText(R.id.tv_scene_name, obj.getScensename()) .setText(R.id.tv_district, obj.getTownname()) .setText(R.id.tv_standard, obj.getResultstandardbef()); switch (obj.getResultstandardbef()) { case Constant.STANDARD_1: holder.setText(R.id.tv_suggestion, Constant.SUGGESTION_1) .setTextColor(R.id.tv_suggestion, Color.GREEN); break; case Constant.STANDARD_2: holder.setText(R.id.tv_suggestion, Constant.SUGGESTION_2) .setTextColor(R.id.tv_suggestion, Color.YELLOW); break; case Constant.STANDARD_3: holder.setText(R.id.tv_suggestion, Constant.SUGGESTION_3) .setTextColor(R.id.tv_suggestion, Color.RED); break; } } }; rankAdapterMap.put(R.id.tv_scene_rank, adapter); LinearLayoutManager layoutManager = new LinearLayoutManager(context); layoutManager.setOrientation(LinearLayoutManager.VERTICAL); rv_rank.setLayoutManager(layoutManager); rv_rank.addItemDecoration(new DividerItemDecoration(context, DividerItemDecoration.VERTICAL)); rv_rank.setAdapter(rankAdapterMap.get(R.id.tv_scene_rank)); } /** * 联网查询 */ private void search() { try { String tguid = ((TaskVo) sp_top_task.getSelectedItem()).getTguid(); String scenetypeid = ((Domainitem) sp_scene.getSelectedItem()).getValue(); Call> getRank0fScene = evaluationService.getRank0fScene(tguid, scenetypeid, null); getRank0fScene.enqueue(new Callback>() { @Override public void onResponse(Call> call, Response> response) { if (response.body() != null) { sceneEvaluationList.addAll(response.body()); rankAdapterMap.get(R.id.tv_scene_rank).notifyDataSetChanged(); } else if (response.body() == null) { Toast.makeText(context, "无数据", Toast.LENGTH_SHORT).show(); } } @Override public void onFailure(Call> call, Throwable t) { } }); Call> getRankofTown = evaluationService.getRankofTown(tguid, scenetypeid); getRankofTown.enqueue(new Callback>() { @Override public void onResponse(Call> call, Response> response) { if (response.body() != null) { townEvaluationList.addAll(response.body()); } else if (response.body() == null) { Toast.makeText(context, "无数据", Toast.LENGTH_SHORT).show(); } } @Override public void onFailure(Call> call, Throwable t) { } }); } catch (NullPointerException e) { e.printStackTrace(); } } @Override public void onClick(View v) { switch (v.getId()) { case R.id.tv_town_rank: tv_town_rank.setSelected(true); tv_scene_rank.setSelected(false); tv_town_rank.setTextColor(Color.WHITE); tv_scene_rank.setTextColor(Color.BLACK); rv_rank.setAdapter(rankAdapterMap.get(R.id.tv_town_rank)); break; case R.id.tv_scene_rank: tv_scene_rank.setSelected(true); tv_town_rank.setSelected(false); tv_scene_rank.setTextColor(Color.WHITE); tv_town_rank.setTextColor(Color.BLACK); rv_rank.setAdapter(rankAdapterMap.get(R.id.tv_scene_rank)); break; } } @Override public void onItemSelected(AdapterView parent, View view, int position, long id) { switch (parent.getId()) { case R.id.sp_top_task: search(); break; case R.id.sp_scene: search(); break; } } @Override public void onNothingSelected(AdapterView parent) { } }