package com.sunvote.xpadapp.fragments; import android.graphics.Color; import android.os.Bundle; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.LinearLayout; import android.widget.TextView; import com.sunvote.xpadapp.MainActivity; import com.sunvote.xpadapp.R; import com.sunvote.xpadapp.base.BaseFragment; import com.sunvote.xpadapp.db.modal.BillInfo; import com.sunvote.xpadapp.db.modal.MultiTitleItem; import java.text.DecimalFormat; import java.util.ArrayList; public class UserResultVoteFragment extends BaseFragment { private byte[] data; private String[] options; public void setData(byte[] data) { this.data = data; } public void setOptions(String[] options) { this.options = options; } private TextView yingdaoresult; private TextView shidaoresult; // 表決结果 private TextView fragmentResultMemo; private TextView fragmentMemo; // // private LinearLayout tResult; // private LinearLayout dResult; // private LinearLayout pResult; public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View root = inflater.inflate(R.layout.fragment_result_vote, container, false); yingdaoresult = root.findViewById(R.id.yingdaoresult); shidaoresult = root.findViewById(R.id.shidaoresult); fragmentResultMemo = root.findViewById(R.id.fragment_result_memo); fragmentMemo = root.findViewById(R.id.fragment_memo); // tResult = root.findViewById(R.id.t_result); // dResult = root.findViewById(R.id.d_result); // pResult = root.findViewById(R.id.p_result); showResult(); return root; } private View createView(String txt,int color) { TextView tv1 = new TextView(getActivity()); ViewGroup.LayoutParams vlp = new ViewGroup.LayoutParams( ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); tv1.setLayoutParams(vlp);//设置TextView的布局 tv1.setText(txt); tv1.setGravity(Gravity.CENTER); tv1.setTextSize(25); tv1.setTextColor(color); return tv1; } int fenmu,goToBe,goTo,notVote; private void showResult() { int bitNum = data[2] & 0xf; int digiters = data[2] >> 4 & 0xf; int voteNo = data[3] & 0xff; int resultSelectModel = data[4] & 0xff; //表决结果 if (bitNum == 0) { //单字节数值 fenmu = data[5] & 0xff; goToBe= data[6] & 0xff; goTo= data[7] & 0xff; notVote= data[8] & 0xff; int pos =9; int i = pos; for (; i < data.length; i++) { if (pos == data.length - 1) { break; } setView(pos,digiters,bitNum,1); } if (goToBe != 0xff) { yingdaoresult.setText("" + goToBe); } if (goTo != 0xff) { shidaoresult.setText("" + goTo); } if (resultSelectModel != 0xFF) { if(options!=null){ fragmentResultMemo.setText(options[resultSelectModel]); } } } else { fenmu = (data[5] <<8 | data[6]) & 0xffff; goToBe = (data[7] << 8 | data[8]) & 0xffff; goTo = (data[9] << 8 | data[10]) & 0xffff; notVote= (data[11] << 8 | data[12]) & 0xffff; int pos = 13; int i = pos; for (; i < data.length; i++) { if (pos == data.length - 1) { break; } setView(pos,digiters,bitNum,2); } if (goToBe != 0xff) { yingdaoresult.setText("" + goToBe); } if (goTo != 0xff) { shidaoresult.setText("" + goTo); } if (resultSelectModel != 0xFF) { if(options!=null){ fragmentResultMemo.setText(options[resultSelectModel]); } } } } private void setView(int pos, int digiters, int bitNum, int type) { // tResult.removeAllViews(); // dResult.removeAllViews(); // pResult.removeAllViews(); LinearLayout.LayoutParams lp=new LinearLayout.LayoutParams(0,LinearLayout.LayoutParams.WRAP_CONTENT,1.0f); for(int i = 1; i <= options.length ; i++) { if (options.length >= i) { int value1; if (bitNum == 0) { value1 = (data[pos++]) & 0xff; } else { value1 = (data[pos++] << 8 | data[pos++]) & 0xffff; } // tResult.addView(createView(options[i - 1], Color.YELLOW), lp); // dResult.addView(createView("" + value1, Color.WHITE), lp); if (type == 1) { //分母 if ((fenmu > 0 && fenmu != 0xff)) { double pzc = value1 * 1.0 / fenmu * 100; String szc = formatDoubleToString(pzc, digiters, false); // pResult.addView(createView(szc + "%", Color.WHITE), lp); } } else { //分母 if ((fenmu > 0 && fenmu != 0xffff)) { double pzc = value1 * 1.0 / fenmu * 100; String szc = formatDoubleToString(pzc, digiters, false); // pResult.addView(createView(szc + "%", Color.WHITE), lp); } } } } if (notVote != 0xff) { // tResult.addView(createView(getString(R.string.weian), Color.YELLOW), lp); // dResult.addView(createView("" + notVote, Color.WHITE), lp); if ((fenmu > 0 && fenmu != 0xff)) { // pResult.addView(createView("0%", Color.WHITE), lp); }else{ // pResult.setVisibility(View.GONE); } } } public static String formatDoubleToString(double value, Integer digits, boolean remove) { if (value == 0 || value == 100) { DecimalFormat df = new DecimalFormat("0"); return df.format(value); } if (digits == null || digits < 0) { return String.valueOf(value); } else if (digits == 0) { DecimalFormat df = new DecimalFormat("0"); return df.format(value); } else { String temp = "0"; if (remove) { temp = "#"; } StringBuffer buffer = new StringBuffer("0."); for (int i = 0; i < digits; i++) { buffer.append(temp); } DecimalFormat df = new DecimalFormat(buffer.toString()); return df.format(value); } } }