DataCollectionFragment.java 122 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012
  1. package com.uas.collection.fragment;
  2. import android.annotation.SuppressLint;
  3. import android.app.Activity;
  4. import android.content.Context;
  5. import android.content.Intent;
  6. import android.graphics.Color;
  7. import android.graphics.drawable.BitmapDrawable;
  8. import android.support.annotation.Nullable;
  9. import android.support.v4.content.ContextCompat;
  10. import android.support.v7.widget.DividerItemDecoration;
  11. import android.support.v7.widget.GridLayoutManager;
  12. import android.support.v7.widget.LinearLayoutManager;
  13. import android.support.v7.widget.RecyclerView;
  14. import android.text.Editable;
  15. import android.text.TextUtils;
  16. import android.text.TextWatcher;
  17. import android.util.Base64;
  18. import android.util.Log;
  19. import android.util.SparseBooleanArray;
  20. import android.view.Gravity;
  21. import android.view.KeyEvent;
  22. import android.view.LayoutInflater;
  23. import android.view.View;
  24. import android.view.ViewGroup;
  25. import android.view.Window;
  26. import android.view.WindowManager;
  27. import android.view.inputmethod.EditorInfo;
  28. import android.view.inputmethod.InputMethodManager;
  29. import android.widget.AutoCompleteTextView;
  30. import android.widget.CheckBox;
  31. import android.widget.CompoundButton;
  32. import android.widget.ImageView;
  33. import android.widget.LinearLayout;
  34. import android.widget.PopupWindow;
  35. import android.widget.TableRow;
  36. import android.widget.TextView;
  37. import com.alibaba.fastjson.JSON;
  38. import com.alibaba.fastjson.JSONArray;
  39. import com.alibaba.fastjson.JSONObject;
  40. import com.android.volley.Request;
  41. import com.android.volley.toolbox.StringRequest;
  42. import com.bin.david.form.core.SmartTable;
  43. import com.bin.david.form.core.TableConfig;
  44. import com.bin.david.form.data.CellInfo;
  45. import com.bin.david.form.data.column.Column;
  46. import com.bin.david.form.data.format.bg.BaseCellBackgroundFormat;
  47. import com.bin.david.form.data.style.FontStyle;
  48. import com.bin.david.form.data.table.TableData;
  49. import com.bumptech.glide.Glide;
  50. import com.chad.library.adapter.base.BaseQuickAdapter;
  51. import com.chad.library.adapter.base.BaseViewHolder;
  52. import com.uas.collection.R;
  53. import com.uas.collection.activity.FunctionActivity;
  54. import com.uas.collection.bean.IpAndPortBean;
  55. import com.uas.collection.bean.LinecodeBean;
  56. import com.uas.collection.bean.ResourcesBean;
  57. import com.uas.collection.bean.StorageRechargeAloneBean;
  58. import com.uas.collection.bean.TestcollectDataBean;
  59. import com.uas.collection.camera.CaptureActivity;
  60. import com.uas.collection.global.GloableParams;
  61. import com.uas.collection.tools.SharedPreUtil;
  62. import com.uas.collection.util.CameraUtil;
  63. import com.uas.collection.util.CommonUtil;
  64. import com.uas.collection.util.Constants;
  65. import com.uas.collection.util.FastjsonUtil;
  66. import com.uas.collection.util.HttpCallback;
  67. import com.uas.collection.util.HttpParams;
  68. import com.uas.collection.util.JsonUtils;
  69. import com.uas.collection.util.LogUtil;
  70. import com.uas.collection.util.MyArrayAdapter;
  71. import com.uas.collection.util.StringUtil;
  72. import com.uas.collection.util.VollyRequest;
  73. import com.uas.collection.view.ClearableEditText;
  74. import org.jetbrains.annotations.NotNull;
  75. import org.json.JSONException;
  76. import java.util.ArrayList;
  77. import java.util.Collections;
  78. import java.util.HashMap;
  79. import java.util.List;
  80. import java.util.Map;
  81. import razerdp.basepopup.BasePopupWindow;
  82. /**
  83. * Created by RaoMeng on 2023/05/26.
  84. * cjh
  85. * 数据采集
  86. */
  87. public class DataCollectionFragment extends BaseFragment implements View.OnClickListener {
  88. private TextView tv_save;
  89. private AutoCompleteTextView et_linecode_smts;
  90. private ImageView iv_popuwindow;
  91. private AutoCompleteTextView ce_resources;
  92. private ImageView iv_resources;
  93. private ImageView iocout_smts;
  94. private MyArrayAdapter<String> mAutoStringAdapter;
  95. private AutoCompleteTextView tv_pr_code;
  96. private AutoCompleteTextView tv_pr_detail;
  97. private ImageView iv_resources_delete;
  98. private ImageView iv_unhealthy_delete;
  99. private SmartTable mSmartTable;
  100. private Column<String> va_classColumn,va_sr_reasonColumn,va_codeColumn,va_statusColumn;
  101. private TableData<TestcollectDataBean> mTableData;
  102. private List<TestcollectDataBean> mFilterStorageInBeans;
  103. private ImageView iv_personnel_data;
  104. private ClearableEditText edit_et;
  105. private PopupWindow editPW;
  106. private List<IpAndPortBean> delists;
  107. private List<LinecodeBean> linecodeBeanList;
  108. private ArrayList<ResourcesBean> resourcesBeanList;
  109. private IpAndPortAdapter andPortAdapter;
  110. private IpAndlinecodePortAdapter ipAndlinecodePortAdapter;
  111. private IpAndResourcesPortAdapter ipAndResourcesPortAdapter;
  112. private IpAndunhealthyPortAdapter ipAndunhealthyPortAdapter;
  113. private String Tag = "DataCollectionFragment";
  114. private StringRequest mStringRequest;
  115. private RecyclerView rv_data;
  116. private ComListAdapter myAdapter;
  117. private List<ComDataBean> mList;
  118. private String sc_code;
  119. private String st_remark;
  120. private TextView tv_em_name;
  121. private TextView tv_station;
  122. private String em_name;
  123. private String pr_code;
  124. private String pr_detail;
  125. private AutoCompleteTextView tv_dc_emcode;
  126. private AutoCompleteTextView tv_dc_line;
  127. private ImageView iv_dc_emcode;
  128. private ImageView iv_dc_line;
  129. private int mFocusId;
  130. private static final int SCAN_BARCODE_CODESD = 925;
  131. private static final int SCAN_BARCODE_LINE = 888;
  132. private RecyclerView rv_datachange;
  133. private ArrayList<StorageRechargeAloneBean> mFeededList;
  134. private SelectAdapter selectAdapter;
  135. private String alonedata;
  136. private RecyclerView rv_datapassqty;
  137. private ArrayList<StorageRechargeAloneBean> passFeededListQty;
  138. private ArrayList<StorageRechargeAloneBean> passmastelist;
  139. private ArrayList<StorageRechargeAloneBean> passoriginallist;
  140. private ArrayList<StorageRechargeAloneBean> mastercolorlist;
  141. private SelectAdapterQty selectAdapterQty;
  142. private String sc_codecolleone;
  143. private String ma_id;
  144. private AutoCompleteTextView tv_macode;
  145. private String st_remarkce;
  146. private RecyclerView rv_line_ip_port_data;
  147. private RecyclerView rv_undesirable;
  148. private SelectAdapterundesirable myAdapterundesirable;
  149. private ArrayList<StorageRechargeAloneBean> mFeededListundesirable;
  150. private String undesirablalone;
  151. private ImageView iv_dc_emcode_delete;
  152. private ImageView iv_dc_line_delete;
  153. private TextView tv_undesirable;
  154. private RecyclerView rv_master_copy;
  155. private RecyclerView rv_original_copy;
  156. private RecyclerView rv_mastercolor;
  157. private SelectmasterAdapterQty selectmasterAdapterQty;
  158. private SelectoriginalAdapterQty selectoriginaAdapterQty;
  159. private Selectmaster_colorAdapterQty selectmaster_colorAdapterQty;
  160. private TableRow tb_color;
  161. private TableRow tb_master;
  162. private String ce_bit_numbertrim;
  163. private String alonedatamaster;
  164. private String ce_bit_original;
  165. private String ma_bomversion;
  166. private InputMethodManager imm;
  167. @Override
  168. protected int getLayout() {
  169. return R.layout.fragment_datacollection;
  170. }
  171. @Override
  172. protected void initViews() {
  173. FunctionActivity.setTitle(getString(R.string.title_storage_in));
  174. ((FunctionActivity) getActivity()).setMoreBtnVisible(false);
  175. root.setBackgroundColor(getResources().getColor(R.color.background_color_second));
  176. }
  177. @Override
  178. protected void initEvents() {
  179. tv_save = root.findViewById(R.id.tv_save);
  180. et_linecode_smts = (AutoCompleteTextView)root.findViewById(R.id.et_linecode_smts);
  181. et_linecode_smts.setThreshold(1);
  182. et_linecode_smts.requestFocus();
  183. iv_popuwindow = root.findViewById(R.id.iv_popuwindow);
  184. iocout_smts = root.findViewById(R.id.iocout_smts);
  185. tv_pr_code = root.findViewById(R.id.tv_pr_code);
  186. tv_pr_detail = root.findViewById(R.id.tv_pr_detail);
  187. ce_resources = root.findViewById(R.id.ce_resources);
  188. ce_resources.setThreshold(1);
  189. iv_resources_delete = root.findViewById(R.id.iv_resources_delete);
  190. iv_resources = root.findViewById(R.id.iv_resources);
  191. iv_unhealthy_delete = root.findViewById(R.id.iv_unhealthy_delete);
  192. iv_personnel_data = root.findViewById(R.id.iv_personnel_data);
  193. mSmartTable = root.findViewById(R.id.jlt_storage_in_filter_list_st);
  194. rv_data = root.findViewById(R.id.rv_data);
  195. tv_em_name = root.findViewById(R.id.tv_em_name);
  196. tv_station = root.findViewById(R.id.tv_station);
  197. tv_dc_emcode = root.findViewById(R.id.tv_dc_emcode);
  198. iv_dc_emcode = root.findViewById(R.id.iv_dc_emcode);
  199. rv_datachange = root.findViewById(R.id.rv_datachange);
  200. rv_datapassqty = root.findViewById(R.id.rv_datapassqty);
  201. tv_macode = root.findViewById(R.id.tv_macode);
  202. tv_dc_line = root.findViewById(R.id.tv_dc_line);
  203. iv_dc_line = root.findViewById(R.id.iv_dc_line);
  204. rv_undesirable = root.findViewById(R.id.rv_undesirable);
  205. iv_dc_emcode_delete = root.findViewById(R.id.iv_dc_emcode_delete);
  206. iv_dc_line_delete = root.findViewById(R.id.iv_dc_line_delete);
  207. tv_undesirable = root.findViewById(R.id.tv_undesirable);
  208. rv_master_copy = root.findViewById(R.id.rv_master_copy);
  209. rv_original_copy = root.findViewById(R.id.rv_original_copy);
  210. rv_mastercolor = root.findViewById(R.id.rv_mastercolor);
  211. tb_color = root.findViewById(R.id.tb_color);
  212. tb_master = root.findViewById(R.id.tb_master);
  213. mFilterStorageInBeans = Collections.synchronizedList(new ArrayList<>());
  214. rv_data.addItemDecoration(new DividerItemDecoration(mActivity, LinearLayout.VERTICAL));
  215. rv_data.setLayoutManager(new LinearLayoutManager(mActivity));
  216. mList = new ArrayList<>();
  217. myAdapter = new ComListAdapter(mList);
  218. myAdapter.setmList(mList);
  219. rv_data.setAdapter(myAdapter);
  220. em_name = SharedPreUtil.getString(mActivity, Constants.FLAG.CACHE_USER_EMCODE,null);
  221. tv_em_name.setText("人员编号:"+ em_name);
  222. imm = (InputMethodManager) mActivity.getSystemService(Context.INPUT_METHOD_SERVICE);
  223. }
  224. @Override
  225. protected void initDatas() {
  226. resourcesBeanList = new ArrayList<>();
  227. WindowManager wm = mActivity.getWindowManager();
  228. int screenWith = wm.getDefaultDisplay().getWidth()/3;
  229. mSmartTable.getConfig().setMinTableWidth(screenWith)
  230. .setShowXSequence(false)
  231. .setShowYSequence(false)
  232. .setShowTableTitle(false)
  233. .setFixedTitle(true)
  234. .setVerticalPadding(CommonUtil.dip2px(mActivity, 12))
  235. .setColumnTitleVerticalPadding(CommonUtil.dip2px(mActivity, 12))
  236. .setHorizontalPadding(CommonUtil.dip2px(mActivity, 10))
  237. .setSequenceHorizontalPadding(CommonUtil.dip2px(mActivity, 10))
  238. .setColumnTitleHorizontalPadding(CommonUtil.dip2px(mActivity, 10))
  239. .setColumnTitleStyle(new FontStyle(CommonUtil.sp2px(mActivity, 15), Color.parseColor("#000000")))
  240. .setContentCellBackgroundFormat(new BaseCellBackgroundFormat<CellInfo>() {
  241. @Override
  242. public int getBackGroundColor(CellInfo cellInfo) {
  243. if (cellInfo.row % 2 == 0) {
  244. return ContextCompat.getColor(mActivity, R.color.blue_50);
  245. }
  246. return TableConfig.INVALID_COLOR;
  247. }
  248. });
  249. va_classColumn = new Column<String>("现象", "SR_BADNAME");
  250. va_sr_reasonColumn = new Column<String>("原因", "SR_REASON");
  251. // va_classColumn.setFixed(true);
  252. va_codeColumn = new Column<String>("位号", "SR_LOCATION");
  253. va_statusColumn = new Column<String>("数量", "SR_NGQTY");
  254. /**----------------------------------工单号------------------------------**/
  255. et_linecode_smts.setOnEditorActionListener(new TextView.OnEditorActionListener() {
  256. @Override
  257. public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
  258. // if (
  259. // actionId == EditorInfo.IME_ACTION_DONE
  260. // || actionId == EditorInfo.IME_ACTION_SEND
  261. // ||(event != null && event.getAction() == KeyEvent.ACTION_DOWN && event.getKeyCode() == KeyEvent.KEYCODE_ENTER)) {
  262. String va_code = et_linecode_smts.getText().toString().trim();
  263. getfuzzySearchData(va_code,"");
  264. // return true;
  265. // }
  266. return false;
  267. }
  268. });
  269. et_linecode_smts.addTextChangedListener(new TextWatcher() {
  270. @Override
  271. public void beforeTextChanged(CharSequence s, int start, int count, int after) {
  272. }
  273. @Override
  274. public void onTextChanged(CharSequence s, int start, int before, int count) {
  275. }
  276. @Override
  277. public void afterTextChanged(Editable s) {
  278. if (s == null || s.length() == 0) {
  279. iocout_smts.setVisibility(View.GONE);
  280. } else {
  281. iocout_smts.setVisibility(View.VISIBLE);
  282. }
  283. }
  284. });
  285. iocout_smts.setOnClickListener(new View.OnClickListener() {
  286. @Override
  287. public void onClick(View v) {
  288. et_linecode_smts.setText("");
  289. et_linecode_smts.setFocusableInTouchMode(true);
  290. et_linecode_smts.requestFocus();
  291. tv_macode.setText("");
  292. tv_pr_code.setText("");
  293. // chan_code.setText("");
  294. tv_pr_detail.setText("");
  295. }
  296. });
  297. linecodeBeanList = new ArrayList<>();
  298. iv_popuwindow.setOnClickListener(new View.OnClickListener() {
  299. @Override
  300. public void onClick(View v) {
  301. initlinecodePopupWindow();
  302. }
  303. });
  304. /**----------------------------------岗位资源------------------------------**/
  305. ce_resources.setOnEditorActionListener(new TextView.OnEditorActionListener() {
  306. @Override
  307. public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
  308. if (actionId == EditorInfo.IME_ACTION_DONE
  309. || actionId == EditorInfo.IME_ACTION_SEND
  310. || (event != null && event.getAction() == KeyEvent.ACTION_DOWN && event.getKeyCode() == KeyEvent.KEYCODE_ENTER)) {
  311. // String va_code = ce_resources.getText().toString().trim();
  312. // getfuzzySearchSourceData(va_code,"");
  313. return true;
  314. }
  315. return false;
  316. }
  317. });
  318. ce_resources.addTextChangedListener(new TextWatcher() {
  319. @Override
  320. public void beforeTextChanged(CharSequence s, int start, int count, int after) {
  321. }
  322. @Override
  323. public void onTextChanged(CharSequence s, int start, int before, int count) {
  324. }
  325. @Override
  326. public void afterTextChanged(Editable s) {
  327. if (s == null || s.length() == 0) {
  328. iv_resources_delete.setVisibility(View.GONE);
  329. } else {
  330. iv_resources_delete.setVisibility(View.VISIBLE);
  331. }
  332. }
  333. });
  334. iv_resources_delete.setOnClickListener(new View.OnClickListener() {
  335. @Override
  336. public void onClick(View v) {
  337. ce_resources.setFocusableInTouchMode(true);
  338. ce_resources.setText("");
  339. ce_resources.requestFocus();
  340. }
  341. });
  342. tv_dc_emcode.addTextChangedListener(new TextWatcher() {
  343. @Override
  344. public void beforeTextChanged(CharSequence s, int start, int count, int after) {
  345. }
  346. @Override
  347. public void onTextChanged(CharSequence s, int start, int before, int count) {
  348. }
  349. @Override
  350. public void afterTextChanged(Editable s) {
  351. if (s == null || s.length() == 0) {
  352. iv_dc_emcode_delete.setVisibility(View.GONE);
  353. } else {
  354. iv_dc_emcode_delete.setVisibility(View.VISIBLE);
  355. }
  356. }
  357. });
  358. iv_dc_emcode_delete.setOnClickListener(new View.OnClickListener() {
  359. @Override
  360. public void onClick(View v) {
  361. tv_dc_emcode.setText("");
  362. tv_dc_emcode.setFocusableInTouchMode(true);
  363. tv_dc_emcode.requestFocus();
  364. }
  365. });
  366. tv_dc_line.addTextChangedListener(new TextWatcher() {
  367. @Override
  368. public void beforeTextChanged(CharSequence s, int start, int count, int after) {
  369. }
  370. @Override
  371. public void onTextChanged(CharSequence s, int start, int before, int count) {
  372. }
  373. @Override
  374. public void afterTextChanged(Editable s) {
  375. if (s == null || s.length() == 0) {
  376. iv_dc_line_delete.setVisibility(View.GONE);
  377. } else {
  378. iv_dc_line_delete.setVisibility(View.VISIBLE);
  379. }
  380. }
  381. });
  382. tv_dc_line.setOnEditorActionListener(new TextView.OnEditorActionListener() {
  383. @Override
  384. public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
  385. if (actionId == EditorInfo.IME_ACTION_DONE
  386. || actionId == EditorInfo.IME_ACTION_SEND
  387. || (event != null && event.getAction() == KeyEvent.ACTION_DOWN && event.getKeyCode() == KeyEvent.KEYCODE_ENTER)) {
  388. String va_code = tv_dc_line.getText().toString().trim();
  389. // getfuzzySearchSourceData(va_code,"");
  390. if (!StringUtil.isEmpty(va_code)){
  391. tv_dc_line.setFocusable(false);
  392. // 步骤三:关闭软键盘
  393. imm.hideSoftInputFromWindow(tv_dc_line.getWindowToken(), 0);
  394. }
  395. return true;
  396. }
  397. return false;
  398. }
  399. });
  400. iv_dc_line_delete.setOnClickListener(new View.OnClickListener() {
  401. @Override
  402. public void onClick(View v) {
  403. tv_dc_line.setFocusableInTouchMode(true);
  404. tv_dc_line.setText("");
  405. tv_dc_line.requestFocus();
  406. }
  407. });
  408. ipAndResourcesPortAdapter = new IpAndResourcesPortAdapter(resourcesBeanList);
  409. iv_resources.setOnClickListener(new View.OnClickListener() {
  410. @Override
  411. public void onClick(View v) {
  412. initresourcesPopupWindow();
  413. }
  414. });
  415. /**----------------------------------不良现象------------------------------**/
  416. // iv_unhealthy.setOnClickListener(new View.OnClickListener() {
  417. // @Override
  418. // public void onClick(View v) {
  419. //// initunhealthyPopupWindow();
  420. // }
  421. // });
  422. mFeededList = new ArrayList<>();
  423. selectAdapter = new SelectAdapter(mFeededList);
  424. LinearLayoutManager layoutmanager = new LinearLayoutManager(mActivity);
  425. // MyLayoutManager layout = new MyLayoutManager();
  426. // layout.setAutoMeasureEnabled(true);//防止recyclerview高度为wrap时测量item高度0(一定要加这个属性,否则显示不出来)
  427. GridLayoutManager gridLayoutManager=new GridLayoutManager(mActivity,4);
  428. layoutmanager.setOrientation(LinearLayoutManager.HORIZONTAL);//列表横向显示
  429. rv_datachange.setLayoutManager(gridLayoutManager);
  430. setAdapter(mFeededList);
  431. rv_datachange.setAdapter(selectAdapter);
  432. /**--------------------------不良数量---------------------------------------**/
  433. passFeededListQty = new ArrayList<>();
  434. selectAdapterQty = new SelectAdapterQty(passFeededListQty);
  435. LinearLayoutManager layoutmanagertwo = new LinearLayoutManager(mActivity);
  436. // MyLayoutManager layouttwo = new MyLayoutManager();
  437. // layouttwo.setAutoMeasureEnabled(true);//防止recyclerview高度为wrap时测量item高度0(一定要加这个属性,否则显示不出来)
  438. layoutmanagertwo.setOrientation(LinearLayoutManager.HORIZONTAL);//列表横向显示
  439. rv_datapassqty.setLayoutManager(layoutmanagertwo);
  440. setAdaptertwo(passFeededListQty);
  441. rv_datapassqty.setAdapter(selectAdapterQty);
  442. List<String> list=new ArrayList<>();
  443. list.add("1");
  444. list.add("2");
  445. list.add("3");
  446. list.add("4");
  447. list.add("5");
  448. JSONObject jsonObject = new JSONObject();
  449. JSONArray jsonArray = new JSONArray();
  450. JSONObject object_1 = new JSONObject();
  451. for (int i=0;i<list.size();i++){
  452. StorageRechargeAloneBean bean=new StorageRechargeAloneBean(list.get(i));
  453. object_1.put("alone", list.get(i));
  454. jsonArray.add(bean);
  455. }
  456. jsonObject.put("formStore", jsonArray);
  457. Log.e("alone===2",jsonObject.toString());
  458. JSONArray dataArray = FastjsonUtil.getJSONArray(jsonObject.toString(), "formStore");
  459. handleFeededDataTwo(dataArray);
  460. tv_save.setOnClickListener(new View.OnClickListener() {
  461. @Override
  462. public void onClick(View v) {
  463. getNewData();
  464. }
  465. });
  466. ipAndunhealthyPortAdapter = new IpAndunhealthyPortAdapter(resourcesBeanList);
  467. tv_dc_emcode.setOnEditorActionListener(new TextView.OnEditorActionListener() {
  468. @Override
  469. public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
  470. // if (actionId == EditorInfo.IME_ACTION_DONE
  471. // || actionId == EditorInfo.IME_ACTION_SEND
  472. // || (event != null && event.getAction() == KeyEvent.ACTION_DOWN && event.getKeyCode() == KeyEvent.KEYCODE_ENTER)) {
  473. String dc_emcode = tv_dc_emcode.getText().toString().trim();
  474. getOrImage(dc_emcode);
  475. // return true;
  476. // }
  477. return false;
  478. }
  479. });
  480. iv_dc_emcode.setOnClickListener(new View.OnClickListener() {
  481. @Override
  482. public void onClick(View v) {
  483. tv_dc_emcode.requestFocus();
  484. if (CameraUtil.hasCamera()) {
  485. if (root.findFocus() != null) {
  486. mFocusId = root.findFocus().getId();
  487. Intent intent = new Intent();
  488. intent.setClass(mActivity, CaptureActivity.class);
  489. startActivityForResult(intent, SCAN_BARCODE_CODESD);
  490. SharedPreUtil.saveString(mActivity, Constants.STORAGEERECHADD, "NO");
  491. } else {
  492. CommonUtil.toastNoRepeat(mActivity, "请选择您要操作的输入框");
  493. }
  494. } else {
  495. CommonUtil.toastNoRepeat(mActivity, getString(R.string.no_camera_detected));
  496. }
  497. }
  498. });
  499. iv_dc_line.setOnClickListener(new View.OnClickListener() {
  500. @Override
  501. public void onClick(View v) {
  502. tv_dc_line.requestFocus();
  503. if (CameraUtil.hasCamera()) {
  504. if (root.findFocus() != null) {
  505. mFocusId = root.findFocus().getId();
  506. Intent intent = new Intent();
  507. intent.setClass(mActivity, CaptureActivity.class);
  508. startActivityForResult(intent, SCAN_BARCODE_LINE);
  509. SharedPreUtil.saveString(mActivity, Constants.STORAGEERECHADD, "NO");
  510. } else {
  511. CommonUtil.toastNoRepeat(mActivity, "请选择您要操作的输入框");
  512. }
  513. } else {
  514. CommonUtil.toastNoRepeat(mActivity, getString(R.string.no_camera_detected));
  515. }
  516. }
  517. });
  518. sc_codecolleone = SharedPreUtil.getString(mActivity, "sc_codecolleone", null);
  519. ce_resources.setText(sc_codecolleone);
  520. tv_station.setText(sc_codecolleone);
  521. if (!StringUtil.isEmpty(sc_codecolleone)){
  522. getunhealthyDataList(sc_codecolleone);
  523. recycleDataundesirable(sc_codecolleone);
  524. recyclemaster_copyData(sc_codecolleone);
  525. recycleoriginal_copyData(sc_codecolleone);
  526. recyclemaster_colorData(sc_codecolleone);
  527. }
  528. // getfuzzySearchSourceData(va_codechushihua,"不良");
  529. // for (int i=0;i<resourcesBeanList.size();i++){
  530. // st_remarkce = resourcesBeanList.get(i).getST_REMARK();
  531. // }
  532. }
  533. private void handleFeededDataTwo(JSONArray dataArray) {
  534. StorageRechargeAloneBean bean;
  535. passFeededListQty.clear();
  536. for (Object index : dataArray) {
  537. JSONObject data = (JSONObject) index;
  538. bean= new StorageRechargeAloneBean(
  539. data.getString("alonedata"));
  540. passFeededListQty.add(bean);
  541. }
  542. setAdaptertwo(passFeededListQty);
  543. }
  544. private void setAdaptertwo(ArrayList<StorageRechargeAloneBean> mList) {
  545. LogUtil.i("mList", JSON.toJSONString(mList));
  546. selectAdapterQty = new SelectAdapterQty(mList);
  547. rv_datapassqty.setAdapter(selectAdapterQty);
  548. }
  549. private void closeListPopupWindow() {
  550. if (editPW != null) {
  551. editPW.dismiss();
  552. editPW = null;
  553. CommonUtil.setBackgroundAlpha(mActivity, 1f);
  554. }
  555. }
  556. /**
  557. * 关于人员资料
  558. */
  559. private boolean pepolerboolean = false;
  560. public void getOrImage(String em_code){
  561. // progressDialog.show();
  562. VollyRequest.getInstance().stringRequest(mStringRequest,
  563. new HttpParams.Builder()
  564. .url(GloableParams.ASTATIONTHE_RESOURCEFILE)
  565. .method(Request.Method.GET)
  566. .addParam("em_code",em_code)
  567. .tag("Tag" + "getSourceByEmp")
  568. .flag(0)
  569. .build(), new HttpCallback() {
  570. @Override
  571. public void onSuccess(int flag, Object o) throws Exception {
  572. progressDialog.dismiss();
  573. Boolean isSuccess = FastjsonUtil.getBoolean(o.toString(),"success");
  574. if (isSuccess){
  575. JSONObject data = FastjsonUtil.getJSONObject(o.toString(), "data");
  576. JSONArray url = FastjsonUtil.getJSONArray(data, "url");
  577. if (url == null || url.size() == 0){
  578. CommonUtil.toastNoRepeat(mActivity,"未搜索到匹配数据");
  579. pepolerboolean= false;
  580. Glide.with(mActivity).load("").into(iv_personnel_data);
  581. tv_dc_emcode.requestFocus();
  582. tv_dc_emcode.setSelection(tv_dc_emcode.getText().toString().length());
  583. return;
  584. }
  585. for(int i=0;i<url.size();i++){
  586. JSONObject data2 = (JSONObject) url.get(i);
  587. if (!StringUtil.isEmpty(data2.getString("path"))){
  588. String path = data2.getString("path");
  589. String str2 = new String(Base64.decode(path.getBytes(),Base64.DEFAULT));
  590. Glide.with(mActivity).load(str2).into(iv_personnel_data);
  591. et_linecode_smts.clearFocus();
  592. tv_dc_emcode.clearFocus();
  593. ce_resources.clearFocus();
  594. tv_dc_emcode.setFocusable(false);
  595. pepolerboolean= true;
  596. }
  597. }
  598. }
  599. // else {
  600. //步骤三:关闭软键盘
  601. // imm.hideSoftInputFromWindow(tv_dc_line.getWindowToken(), 0);
  602. // }
  603. }
  604. @Override
  605. public void onFail(int flag, String failStr) throws Exception {
  606. progressDialog.dismiss();
  607. CommonUtil.toastNoRepeat(mActivity, failStr);
  608. pepolerboolean= false;
  609. }
  610. });
  611. }
  612. private void handleFeededData(JSONArray dataArray) {
  613. StorageRechargeAloneBean bean;
  614. mFeededList.clear();
  615. for (Object index : dataArray) {
  616. JSONObject data = (JSONObject) index;
  617. bean= new StorageRechargeAloneBean(
  618. data.getString("alonedata"));
  619. mFeededList.add(bean);
  620. }
  621. setAdapter(mFeededList);
  622. }
  623. private void setAdapter(ArrayList<StorageRechargeAloneBean> mList) {
  624. LogUtil.i("mList", JSON.toJSONString(mList));
  625. selectAdapter = new SelectAdapter(mList);
  626. rv_datachange.setAdapter(selectAdapter);
  627. selectAdapter.notifyDataSetChanged();
  628. }
  629. private class ComDataBean{
  630. String PS_CODE = null;
  631. String PS_PRODCODE = null;
  632. String PS_STEPCODE = null;
  633. String PR_SPEC = null;
  634. String PR_DETAIL= null;
  635. boolean isChecked;
  636. public String getPR_SPEC() {
  637. return PR_SPEC;
  638. }
  639. public void setPR_SPEC(String PR_SPEC) {
  640. this.PR_SPEC = PR_SPEC;
  641. }
  642. public String getPR_DETAIL() {
  643. return PR_DETAIL;
  644. }
  645. public void setPR_DETAIL(String PR_DETAIL) {
  646. this.PR_DETAIL = PR_DETAIL;
  647. }
  648. public boolean getChecked() {
  649. return isChecked;
  650. }
  651. public void setChecked(boolean checked) {
  652. isChecked = checked;
  653. }
  654. public String getPS_CODE() {
  655. return PS_CODE;
  656. }
  657. public void setPS_CODE(String PS_CODE) {
  658. this.PS_CODE = PS_CODE;
  659. }
  660. public String getPS_PRODCODE() {
  661. return PS_PRODCODE;
  662. }
  663. public void setPS_PRODCODE(String PS_PRODCODE) {
  664. this.PS_PRODCODE = PS_PRODCODE;
  665. }
  666. public String getPS_STEPCODE() {
  667. return PS_STEPCODE;
  668. }
  669. public void setPS_STEPCODE(String PS_STEPCODE) {
  670. this.PS_STEPCODE = PS_STEPCODE;
  671. }
  672. }
  673. private class ComListAdapter extends BaseQuickAdapter<ComDataBean, BaseViewHolder> {
  674. private List<ComDataBean> mmmmList;
  675. public List<ComDataBean> getmList() {
  676. return mmmmList;
  677. }
  678. public void setmList(List<ComDataBean> mList) {
  679. this.mmmmList = mList;
  680. }
  681. public ComDataBean getBeanByPositon(int position){
  682. return mmmmList.get(position);
  683. }
  684. private ComListAdapter(@Nullable List<ComDataBean> data) {
  685. super(R.layout.fuzzy_search_item, data);
  686. this.mmmmList = data;
  687. }
  688. @Override
  689. protected void convert(BaseViewHolder helper, ComDataBean item) {
  690. helper.setText(R.id.macode_Tv,item.getPS_CODE());
  691. helper.setText(R.id.remark_Tv,item.getPS_PRODCODE()+item.getPS_STEPCODE());
  692. LinearLayout line_true = helper.itemView.findViewById(R.id.line_true);
  693. if (item.getChecked()) {
  694. line_true.setSelected(true);
  695. } else {
  696. line_true.setSelected(false);
  697. }
  698. }
  699. }
  700. private class IpAndPortAdapter extends BaseQuickAdapter<IpAndPortBean, BaseViewHolder> {
  701. private List<IpAndPortBean> mmmmList;
  702. public List<IpAndPortBean> getmList() {
  703. return mmmmList;
  704. }
  705. public void setmList(List<IpAndPortBean> mList) {
  706. this.mmmmList = mList;
  707. }
  708. public IpAndPortBean getBeanByPositon(int position){
  709. return mmmmList.get(position);
  710. }
  711. private IpAndPortAdapter(@Nullable List<IpAndPortBean> data) {
  712. super(R.layout.fuzzy_ipandport_item, data);
  713. this.mmmmList = data;
  714. }
  715. @Override
  716. protected void convert(BaseViewHolder helper, IpAndPortBean item) {
  717. helper.setText(R.id.macode_ip__Tv,item.getSS_CODE()+"-"+item.getSS_STEPCODE()+"-"+item.getSS_NAME());
  718. LinearLayout line_true = helper.itemView.findViewById(R.id.line_true);
  719. if (item.getChecked()) {
  720. line_true.setSelected(true);
  721. } else {
  722. line_true.setSelected(false);
  723. }
  724. }
  725. }
  726. private class IpAndlinecodePortAdapter extends BaseQuickAdapter<LinecodeBean, BaseViewHolder> {
  727. private List<LinecodeBean> mmmmList;
  728. public List<LinecodeBean> getmList() {
  729. return mmmmList;
  730. }
  731. public void setmList(List<LinecodeBean> mList) {
  732. this.mmmmList = mList;
  733. }
  734. public LinecodeBean getBeanByPositon(int position){
  735. return mmmmList.get(position);
  736. }
  737. private IpAndlinecodePortAdapter(@Nullable List<LinecodeBean> data) {
  738. super(R.layout.fuzzy_ipandport_item, data);
  739. this.mmmmList = data;
  740. }
  741. @Override
  742. protected void convert(BaseViewHolder helper, LinecodeBean item) {
  743. helper.setText(R.id.macode_ip__Tv,item.getMA_ID()+"-"+item.getMA_CODE()+"-"+item.getPR_CODE()+"-"+item.getPR_DETAIL());
  744. LinearLayout line_true = helper.itemView.findViewById(R.id.line_true);
  745. if (item.getChecked()) {
  746. line_true.setSelected(true);
  747. } else {
  748. line_true.setSelected(false);
  749. }
  750. }
  751. }
  752. private class IpAndResourcesPortAdapter extends BaseQuickAdapter<ResourcesBean, BaseViewHolder> {
  753. private List<ResourcesBean> mmmmList;
  754. public List<ResourcesBean> getmList() {
  755. return mmmmList;
  756. }
  757. public void setmList(List<ResourcesBean> mList) {
  758. this.mmmmList = mList;
  759. }
  760. public ResourcesBean getBeanByPositon(int position){
  761. return mmmmList.get(position);
  762. }
  763. private IpAndResourcesPortAdapter(@Nullable List<ResourcesBean> data) {
  764. super(R.layout.fuzzy_ipandport_item, data);
  765. this.mmmmList = data;
  766. }
  767. @Override
  768. protected void convert(BaseViewHolder helper, ResourcesBean item) {
  769. helper.setText(R.id.macode_ip__Tv,item.getSC_CODE());
  770. LinearLayout line_true = helper.itemView.findViewById(R.id.line_true);
  771. if (item.getChecked()) {
  772. line_true.setSelected(true);
  773. } else {
  774. line_true.setSelected(false);
  775. }
  776. }
  777. }
  778. private class IpAndunhealthyPortAdapter extends BaseQuickAdapter<ResourcesBean, BaseViewHolder> {
  779. private List<ResourcesBean> mmmmList;
  780. public List<ResourcesBean> getmList() {
  781. return mmmmList;
  782. }
  783. public void setmList(List<ResourcesBean> mList) {
  784. this.mmmmList = mList;
  785. }
  786. public ResourcesBean getBeanByPositon(int position){
  787. return mmmmList.get(position);
  788. }
  789. private IpAndunhealthyPortAdapter(@Nullable List<ResourcesBean> data) {
  790. super(R.layout.fuzzy_ipandport_item, data);
  791. this.mmmmList = data;
  792. }
  793. @Override
  794. protected void convert(BaseViewHolder helper, ResourcesBean item) {
  795. helper.setText(R.id.macode_ip__Tv,item.getST_REMARK());
  796. LinearLayout line_true = helper.itemView.findViewById(R.id.line_true);
  797. if (item.getChecked()) {
  798. line_true.setSelected(true);
  799. } else {
  800. line_true.setSelected(false);
  801. }
  802. }
  803. }
  804. public void getfuzzySearchData(String inoutNo,String sone){
  805. VollyRequest.getInstance().stringRequest(new HttpParams.Builder()
  806. .url(GloableParams.ADDRESS_SMT_FUZZY_SEARCH)
  807. .method(Request.Method.GET)
  808. .addParam("inoutNo", inoutNo)
  809. .build(), new HttpCallback() {
  810. @Override
  811. public void onSuccess(int flag, Object o) throws Exception {
  812. progressDialog.dismiss();
  813. String s = o.toString();
  814. List<String> mAutoStrings = new ArrayList<String>();
  815. try {
  816. mAutoStrings.clear();
  817. linecodeBeanList.clear();
  818. mAutoStringAdapter = new MyArrayAdapter<String>(mActivity, android.R.layout.simple_dropdown_item_1line, mAutoStrings);
  819. if (et_linecode_smts != null) {
  820. et_linecode_smts.setAdapter(mAutoStringAdapter);
  821. }
  822. org.json.JSONObject resultObject = new org.json.JSONObject(s);
  823. org.json.JSONArray dataArray = resultObject.optJSONArray("data");
  824. JSONArray dataArrayone = FastjsonUtil.getJSONArray(o.toString(),"data");
  825. if (sone.equals("弹框")){
  826. if (dataArrayone == null|| dataArrayone.size() == 0){
  827. CommonUtil.toastNoRepeat(mActivity,"未搜索到匹配数据");
  828. }
  829. for(Object index:dataArrayone){
  830. JSONObject data = (JSONObject) index;
  831. LinecodeBean bean = new LinecodeBean();
  832. bean.setMA_CODE(data.getString("MA_CODE"));
  833. bean.setPR_CODE(data.getString("PR_CODE"));
  834. bean.setPR_DETAIL(data.getString("PR_DETAIL"));
  835. bean.setMA_ID(data.getString("MA_ID"));
  836. bean.setMA_BOMVERSION(data.getString("MA_BOMVERSION"));
  837. linecodeBeanList.add(bean);
  838. }
  839. ipAndlinecodePortAdapter.setmList(linecodeBeanList);
  840. ipAndlinecodePortAdapter.notifyDataSetChanged();
  841. }
  842. else {
  843. if (dataArray != null) {
  844. for (int i = 0; i < dataArray.length(); i++) {
  845. org.json.JSONObject dataObject = dataArray.optJSONObject(i);
  846. if (dataObject != null) {
  847. String ma_code = JsonUtils.optStringNotNull(dataObject, "MA_CODE");
  848. String pr_code = JsonUtils.optStringNotNull(dataObject, "PR_CODE");
  849. String pr_detail = JsonUtils.optStringNotNull(dataObject, "PR_DETAIL");
  850. String ma_id = JsonUtils.optStringNotNull(dataObject, "MA_ID");
  851. String ma_bomversion = JsonUtils.optStringNotNull(dataObject, "MA_BOMVERSION");
  852. if (!TextUtils.isEmpty(ma_id))
  853. mAutoStringAdapter.add(ma_code);
  854. tv_pr_code.setText(""+ma_bomversion);
  855. // chan_code.setText(""+pr_code);
  856. tv_pr_detail.setText(""+pr_detail);
  857. tv_macode.setText(""+ma_code);
  858. et_linecode_smts.setText(ma_id);
  859. et_linecode_smts.clearFocus();
  860. tv_dc_emcode.requestFocus();
  861. ce_resources.clearFocus();
  862. }
  863. }
  864. }
  865. }
  866. } catch (JSONException e) {
  867. e.printStackTrace();
  868. }
  869. }
  870. @Override
  871. public void onFail(int flag, String failStr) throws Exception {
  872. progressDialog.dismiss();
  873. CommonUtil.toastNoRepeat(mActivity, failStr);
  874. }
  875. });
  876. }
  877. public void getfuzzySearchSourceData(String sourcecode,String sourstring){
  878. if (sourstring.equals("不良")){
  879. if (sourcecode.isEmpty()){
  880. CommonUtil.toastNoRepeat(mActivity,"请先输入岗位资源");
  881. return;
  882. }
  883. }
  884. VollyRequest.getInstance().stringRequest(new HttpParams.Builder()
  885. .url(GloableParams.ASTATIONTHE_SELECT_FUZZYSEARCHSOURCE)
  886. .method(Request.Method.GET)
  887. .addParam("sourcecode", sourcecode)
  888. .build(), new HttpCallback() {
  889. @Override
  890. public void onSuccess(int flag, Object o) throws Exception {
  891. progressDialog.dismiss();
  892. String s = o.toString();
  893. List<String> mAutoStrings = new ArrayList<String>();
  894. try {
  895. mAutoStrings.clear();
  896. resourcesBeanList.clear();
  897. MyArrayAdapter<String> mAutoStringAdapte = new MyArrayAdapter<String>(mActivity, android.R.layout.simple_dropdown_item_1line, mAutoStrings);
  898. if (ce_resources != null) {
  899. ce_resources.setAdapter(mAutoStringAdapte);
  900. }
  901. org.json.JSONObject resultObject = new org.json.JSONObject(s);
  902. org.json.JSONArray dataArray = resultObject.optJSONArray("data");
  903. JSONArray dataArrayone = FastjsonUtil.getJSONArray(o.toString(),"data");
  904. if (sourstring.equals("弹框")||sourstring.equals("不良")){
  905. if (dataArrayone == null|| dataArrayone.size() == 0){
  906. CommonUtil.toastNoRepeat(mActivity,"未搜索到匹配数据");
  907. }
  908. if (sourstring.equals("不良")){
  909. for(Object index:dataArrayone){
  910. JSONObject data = (JSONObject) index;
  911. String st_remark = data.getString("ST_REMARK");
  912. if (!StringUtil.isEmpty(st_remark)){
  913. if (st_remark.contains("|")){
  914. String[] split = st_remark.split("\\|");
  915. for (int i=0;i<split.length;i++){
  916. ResourcesBean bean = new ResourcesBean();
  917. bean.setST_REMARK(split[i]);
  918. resourcesBeanList.add(bean);
  919. }
  920. }
  921. }
  922. }
  923. JSONObject jsonObjectce = new JSONObject();
  924. JSONArray jsonArrayce = new JSONArray();
  925. JSONObject object_1ce = new JSONObject();
  926. for (int i = 0; i< resourcesBeanList.size(); i++){
  927. StorageRechargeAloneBean bean=new StorageRechargeAloneBean(resourcesBeanList.get(i).getST_REMARK());
  928. object_1ce.put("alone", resourcesBeanList.get(i).getST_REMARK());
  929. jsonArrayce.add(bean);
  930. }
  931. jsonObjectce.put("formStore", jsonArrayce);
  932. JSONArray dataArrayce = FastjsonUtil.getJSONArray(jsonObjectce.toString(), "formStore");
  933. handleFeededData(dataArrayce);
  934. ipAndunhealthyPortAdapter.setmList(resourcesBeanList);
  935. ipAndunhealthyPortAdapter.notifyDataSetChanged();
  936. }else {
  937. for(Object index:dataArrayone){
  938. JSONObject data = (JSONObject) index;
  939. ResourcesBean bean = new ResourcesBean();
  940. bean.setSC_CODE(data.getString("SC_CODE"));
  941. bean.setST_REMARK(data.getString("ST_REMARK"));
  942. bean.setSC_NAME(data.getString("SC_NAME"));
  943. resourcesBeanList.add(bean);
  944. }
  945. ipAndResourcesPortAdapter.setmList(resourcesBeanList);
  946. ipAndResourcesPortAdapter.notifyDataSetChanged();
  947. }
  948. }
  949. else {
  950. if (dataArray != null) {
  951. for (int i = 0; i < dataArray.length(); i++) {
  952. org.json.JSONObject dataObject = dataArray.optJSONObject(i);
  953. if (dataObject != null) {
  954. String sc_code = JsonUtils.optStringNotNull(dataObject, "SC_CODE");
  955. String st_remark = JsonUtils.optStringNotNull(dataObject, "ST_REMARK");
  956. ce_resources.setText(sc_code);
  957. if (!StringUtil.isEmpty(sc_code)){
  958. SharedPreUtil.saveString(mActivity,"sc_codecolleone",sc_code);
  959. }
  960. tv_station.setText("当前岗位:"+sc_code);
  961. if (!StringUtil.isEmpty(st_remark)){
  962. if (st_remark.contains("|")){
  963. String[] split = st_remark.split("\\|");
  964. for (int j=0;j<split.length;j++){
  965. ResourcesBean bean = new ResourcesBean();
  966. bean.setST_REMARK(split[j]);
  967. resourcesBeanList.add(bean);
  968. }
  969. }
  970. }
  971. JSONObject jsonObjectce = new JSONObject();
  972. JSONArray jsonArrayce = new JSONArray();
  973. JSONObject object_1ce = new JSONObject();
  974. for (int f = 0; f< resourcesBeanList.size(); f++){
  975. StorageRechargeAloneBean bean=new StorageRechargeAloneBean(resourcesBeanList.get(f).getST_REMARK());
  976. object_1ce.put("alone", resourcesBeanList.get(f).getST_REMARK());
  977. jsonArrayce.add(bean);
  978. }
  979. jsonObjectce.put("formStore", jsonArrayce);
  980. JSONArray dataArrayce = FastjsonUtil.getJSONArray(jsonObjectce.toString(), "formStore");
  981. handleFeededData(dataArrayce);
  982. ipAndunhealthyPortAdapter.setmList(resourcesBeanList);
  983. ipAndunhealthyPortAdapter.notifyDataSetChanged();
  984. tv_dc_emcode.clearFocus();
  985. ce_resources.clearFocus();
  986. }
  987. }
  988. }
  989. }
  990. } catch (JSONException e) {
  991. e.printStackTrace();
  992. }
  993. }
  994. @Override
  995. public void onFail(int flag, String failStr) throws Exception {
  996. progressDialog.dismiss();
  997. CommonUtil.toastNoRepeat(mActivity, failStr);
  998. }
  999. });
  1000. }
  1001. //表格数据
  1002. public void getTestcollectdata(String macode,String sourcecode){
  1003. progressDialog.show();
  1004. VollyRequest.getInstance().stringRequest(new HttpParams.Builder()
  1005. .url(GloableParams.ASTATIONTHE_SELECT_TESTCOLLECTDATA)
  1006. .method(Request.Method.GET)
  1007. .addParam("macode", macode)
  1008. .addParam("sourcecode", sourcecode)
  1009. .addParam("type","数据采集")
  1010. .build(), new HttpCallback() {
  1011. @Override
  1012. public void onSuccess(int flag, Object o) throws Exception {
  1013. progressDialog.dismiss();
  1014. String result = o.toString();
  1015. JSONObject resultObject = JSON.parseObject(result);
  1016. JSONArray dataArray = resultObject.getJSONArray("data");
  1017. List<TestcollectDataBean> list=new ArrayList<>();
  1018. list.clear();
  1019. if (dataArray != null && dataArray.size() > 0) {
  1020. for (int i = 0; i < dataArray.size(); i++) {
  1021. JSONObject dataObject = dataArray.getJSONObject(i);
  1022. if (dataObject != null) {
  1023. TestcollectDataBean jltStorageInBean = new TestcollectDataBean();
  1024. jltStorageInBean.setSR_BADNAME(FastjsonUtil.getText(dataObject, "SR_BADNAME"));
  1025. jltStorageInBean.setSR_REASON(FastjsonUtil.getText(dataObject, "SR_REASON"));
  1026. jltStorageInBean.setSR_LOCATION(FastjsonUtil.getText(dataObject, "SR_LOCATION"));
  1027. jltStorageInBean.setSR_NGQTY(FastjsonUtil.getText(dataObject, "SR_NGQTY"));
  1028. list.add(jltStorageInBean);
  1029. }
  1030. }
  1031. }
  1032. mFilterStorageInBeans = list;//PI_INOUTNO
  1033. setFilterTableData(mFilterStorageInBeans);
  1034. }
  1035. @Override
  1036. public void onFail(int flag, String failStr) throws Exception {
  1037. progressDialog.dismiss();
  1038. setFilterTableData(mFilterStorageInBeans);
  1039. CommonUtil.toastNoRepeat(mActivity, failStr);
  1040. }
  1041. });
  1042. }
  1043. private void setFilterTableData(List<TestcollectDataBean> filterTableData) {
  1044. mTableData = new TableData<TestcollectDataBean>("收料单列表", filterTableData,
  1045. va_classColumn,va_sr_reasonColumn,va_codeColumn,va_statusColumn);
  1046. mSmartTable.setTableData(mTableData);
  1047. // mSmartTable.requestLayout();
  1048. mSmartTable.postDelayed(new Runnable() {
  1049. @Override
  1050. public void run() {
  1051. mSmartTable.postInvalidate();
  1052. }
  1053. }, 100);
  1054. }
  1055. String ec_passqtytrim;
  1056. public void getNewData(){
  1057. if (!pepolerboolean||tv_dc_emcode.getText().toString().trim().isEmpty()){
  1058. CommonUtil.toastNoRepeat(mActivity, "请采集人员编号");
  1059. return;
  1060. }
  1061. if (tv_dc_line.getText().toString().trim().isEmpty()){
  1062. CommonUtil.toastNoRepeat(mActivity, "请输入物理线体");
  1063. return;
  1064. }
  1065. JSONArray jsonArray = new JSONArray();
  1066. JSONObject object_1 = new JSONObject();
  1067. String ce_work_codetrim = tv_macode.getText().toString().trim();
  1068. String at_stationtrim = ce_resources.getText().toString().trim();
  1069. ArrayList<StorageRechargeAloneBean> selectedItem = selectAdapter.getSelectedItem();
  1070. if (selectedItem.size()==0){
  1071. CommonUtil.toastNoRepeat(mActivity, "请选择不良现象");
  1072. return;
  1073. }
  1074. ArrayList<StorageRechargeAloneBean> selectedItemdapt = myAdapterundesirable.getSelectedItem();
  1075. if (mFeededListundesirable.size()!=0){
  1076. if (selectedItemdapt.size()==0){
  1077. CommonUtil.toastNoRepeat(mActivity, "请选择不良原因");
  1078. return;
  1079. }
  1080. }
  1081. ArrayList<StorageRechargeAloneBean> selectAdapterQtySelectedItem1 = selectAdapterQty.getSelectedItem();
  1082. if (selectAdapterQtySelectedItem1.size()==0){
  1083. CommonUtil.toastNoRepeat(mActivity, "请选择不良数量");
  1084. return;
  1085. }
  1086. for (int i=0;i<selectedItem.size();i++){
  1087. if (selectedItem.get(i).getAlonedata().equals("其他")){
  1088. alonedata = selectedItem.get(i).getInputce();
  1089. if (StringUtil.isEmpty(alonedata)){
  1090. object_1.put("SR_BADNAME",null);//不良现象
  1091. }else {
  1092. object_1.put("SR_BADNAME",alonedata);//不良现象
  1093. }
  1094. }else {
  1095. alonedata = selectedItem.get(i).getAlonedata();
  1096. object_1.put("SR_BADNAME",alonedata);//不良现象
  1097. }
  1098. }
  1099. if (ce_resources.getText().toString().trim().equals("炉前目检")||ce_resources.getText().toString().trim().equals("检焊目检")){
  1100. ArrayList<StorageRechargeAloneBean> adaptermaserSelectedItem = selectmasterAdapterQty.getSelectedItem();
  1101. ArrayList<StorageRechargeAloneBean> adapterQtySelectedItem = selectoriginaAdapterQty.getSelectedItem();
  1102. if (adaptermaserSelectedItem.size()==0&&adapterQtySelectedItem.size()==0){
  1103. CommonUtil.toastNoRepeat(mActivity, "请勾选原件位号");
  1104. return;
  1105. }
  1106. if (adaptermaserSelectedItem.size()==0){
  1107. for (int i=0;i<adapterQtySelectedItem.size();i++){
  1108. ce_bit_numbertrim = adapterQtySelectedItem.get(i).getAlonedata();
  1109. if (ce_bit_numbertrim.equals("0")){
  1110. CommonUtil.toastNoRepeat(mActivity, "原件位号不可为0");
  1111. return;
  1112. }
  1113. }
  1114. }else if (adapterQtySelectedItem.size()==0){
  1115. for (int i=0;i<adaptermaserSelectedItem.size();i++){
  1116. ce_bit_numbertrim = adaptermaserSelectedItem.get(i).getAlonedata();
  1117. }
  1118. }else {
  1119. for (int i=0;i<adapterQtySelectedItem.size();i++){
  1120. alonedatamaster = adapterQtySelectedItem.get(i).getAlonedata();
  1121. }
  1122. for (int i=0;i<adaptermaserSelectedItem.size();i++){
  1123. ce_bit_original = adaptermaserSelectedItem.get(i).getAlonedata();
  1124. }
  1125. ce_bit_numbertrim=ce_bit_original+alonedatamaster;
  1126. }
  1127. }else if (ce_resources.getText().toString().trim().equals("线材目检")){
  1128. ArrayList<StorageRechargeAloneBean> adapterQtySelectedItem = selectmaster_colorAdapterQty.getSelectedItem();
  1129. if (adapterQtySelectedItem.size()==0){
  1130. CommonUtil.toastNoRepeat(mActivity, "请勾选原件位号");
  1131. return;
  1132. }
  1133. for (int i=0;i<adapterQtySelectedItem.size();i++){
  1134. ce_bit_numbertrim = adapterQtySelectedItem.get(i).getAlonedata();
  1135. }
  1136. }else {
  1137. ce_bit_numbertrim = "";
  1138. }
  1139. ArrayList<StorageRechargeAloneBean> selectedundesirablItem = myAdapterundesirable.getSelectedItem();
  1140. if (selectedundesirablItem.size()==0){
  1141. undesirablalone=null;
  1142. }else {
  1143. for (int i=0;i<selectedundesirablItem.size();i++){
  1144. if (selectedundesirablItem.get(i).getAlonedata().equals("其他")){
  1145. undesirablalone=selectedundesirablItem.get(i).getInputce();
  1146. if (StringUtil.isEmpty(undesirablalone)){
  1147. object_1.put("SR_REASON", null);//原因
  1148. }else {
  1149. object_1.put("SR_REASON", undesirablalone);//原因
  1150. }
  1151. }else {
  1152. undesirablalone = selectedundesirablItem.get(i).getAlonedata();
  1153. object_1.put("SR_REASON", undesirablalone);//原因
  1154. }
  1155. }
  1156. }
  1157. ArrayList<StorageRechargeAloneBean> selectAdapterQtySelectedItem = selectAdapterQty.getSelectedItem();
  1158. if (selectAdapterQtySelectedItem.size()==0){
  1159. ec_passqtytrim="1";
  1160. }else {
  1161. for (int i=0;i<selectAdapterQtySelectedItem.size();i++){
  1162. ec_passqtytrim = selectAdapterQtySelectedItem.get(i).getAlonedata();
  1163. }
  1164. }
  1165. object_1.put("SR_ID", "");
  1166. object_1.put("SR_MAKECODE", ce_work_codetrim);//工单号
  1167. object_1.put("SR_SOURCECODE", at_stationtrim);//资源
  1168. object_1.put("SR_PASSQTY", "0");//通过数量
  1169. object_1.put("SR_NGQTY", ec_passqtytrim);//NG数量
  1170. object_1.put("SR_TYPE", "数据采集");//种类(数据采集/、外观维修/性能维修)
  1171. object_1.put("SR_LOCATION", ce_bit_numbertrim);//位号
  1172. object_1.put("SR_SN", "");//SN号
  1173. object_1.put("SR_LINECODE", tv_dc_line.getText().toString().trim());//物理线体
  1174. object_1.put("SR_REMARK", "");//备注/其他
  1175. object_1.put("SR_INMAN", "");//录入人
  1176. object_1.put("SR_INDATE", "");//录入时间
  1177. object_1.put("SR_EMCODE", tv_dc_emcode.getText().toString().trim());//人员编号
  1178. jsonArray.add(object_1);
  1179. Log.e("jsonArray=====",jsonArray.toJSONString());
  1180. progressDialog.show();
  1181. VollyRequest.getInstance().stringRequest(new HttpParams.Builder()
  1182. .url(GloableParams.ASTATIONTHE_SELECT_COLLECTDATA)
  1183. .method(Request.Method.POST)
  1184. .addParam("datainto", jsonArray.toJSONString())
  1185. .build(), new HttpCallback() {
  1186. @Override
  1187. public void onSuccess(int flag, Object o) throws Exception {
  1188. progressDialog.dismiss();
  1189. CommonUtil.toastYESRepeat(mActivity, "保存成功");
  1190. et_linecode_smts.clearFocus();
  1191. tv_dc_emcode.clearFocus();
  1192. ce_resources.clearFocus();
  1193. if (!ce_resources.getText().toString().trim().equals("线材目检")){
  1194. getTestcollectdata(tv_macode.getText().toString().trim(),ce_resources.getText().toString().trim());
  1195. getunhealthyDataList(ce_resources.getText().toString().trim());
  1196. recycleDataundesirable(ce_resources.getText().toString().trim());
  1197. recyclemaster_copyData(ce_resources.getText().toString().trim());//
  1198. recycleoriginal_copyData(ce_resources.getText().toString().trim());
  1199. recyclemaster_colorData(ce_resources.getText().toString().trim());
  1200. }
  1201. getTestcollectdata(tv_macode.getText().toString().trim(),ce_resources.getText().toString().trim());
  1202. // getunhealthyDataList(ce_resources.getText().toString().trim());
  1203. recycleDataundesirable(ce_resources.getText().toString().trim());
  1204. // setAdaptertwo(passFeededListQty);
  1205. recyclemaster_copyData(ce_resources.getText().toString().trim());//
  1206. recycleoriginal_copyData(ce_resources.getText().toString().trim());
  1207. recyclemaster_colorData(ce_resources.getText().toString().trim());
  1208. }
  1209. @Override
  1210. public void onFail(int flag, String failStr) throws Exception {
  1211. progressDialog.dismiss();
  1212. CommonUtil.toastNoRepeat(mActivity, failStr);
  1213. }
  1214. });
  1215. }
  1216. private String ma_code;
  1217. /**
  1218. * 关于工单号弹框
  1219. */
  1220. private void initlinecodePopupWindow() {
  1221. ipAndlinecodePortAdapter = new IpAndlinecodePortAdapter(linecodeBeanList);
  1222. View contView = LayoutInflater.from(mActivity).inflate(R.layout.index_edit_pup, null);
  1223. edit_et = (ClearableEditText) contView.findViewById(R.id.edit_et);
  1224. TextView sure_tv = (TextView) contView.findViewById(R.id.sure_tv);
  1225. TextView cancle_tv = (TextView) contView.findViewById(R.id.cancle_tv);
  1226. ImageView search_im = contView.findViewById(R.id.search_im);
  1227. RecyclerView rv_ip_port_data = contView.findViewById(R.id.rv_ip_port_data);
  1228. rv_ip_port_data.addItemDecoration(new DividerItemDecoration(mActivity, LinearLayout.VERTICAL));
  1229. rv_ip_port_data.setLayoutManager(new LinearLayoutManager(mActivity));
  1230. ipAndlinecodePortAdapter.setmList(linecodeBeanList);
  1231. rv_ip_port_data.setAdapter(ipAndlinecodePortAdapter);
  1232. getfuzzySearchData(edit_et.getText().toString().trim(),"弹框");
  1233. editPW = new PopupWindow(contView, LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT, true);
  1234. editPW.setTouchable(true);
  1235. editPW.setBackgroundDrawable(new BitmapDrawable());
  1236. editPW.setOnDismissListener(new BasePopupWindow.OnDismissListener() {
  1237. @Override
  1238. public void onDismiss() {
  1239. closeListPopupWindow();
  1240. }
  1241. });
  1242. View parentView = mActivity.getWindow().findViewById(Window.ID_ANDROID_CONTENT);
  1243. editPW.showAtLocation(parentView, Gravity.CENTER, 0, 0);
  1244. CommonUtil.setBackgroundAlpha(mActivity, 0.5f);
  1245. search_im.setOnClickListener(new View.OnClickListener() {
  1246. @Override
  1247. public void onClick(View v) {
  1248. getfuzzySearchData(edit_et.getText().toString().trim(),"弹框");
  1249. }
  1250. });
  1251. ipAndlinecodePortAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
  1252. @Override
  1253. public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
  1254. List<LinecodeBean> ipAndPortBeans = ipAndlinecodePortAdapter.getmList();
  1255. ma_code = ipAndPortBeans.get(position).getMA_CODE();
  1256. pr_code = ipAndPortBeans.get(position).getPR_CODE();
  1257. pr_detail = ipAndPortBeans.get(position).getPR_DETAIL();
  1258. ma_id = ipAndPortBeans.get(position).getMA_ID();
  1259. ma_bomversion = ipAndPortBeans.get(position).getMA_BOMVERSION();
  1260. for (int i = 0; i < ipAndPortBeans.size(); i++) {
  1261. ipAndPortBeans.get(i).setChecked(false);
  1262. }
  1263. ipAndPortBeans.get(position).setChecked(true);
  1264. ipAndlinecodePortAdapter.notifyDataSetChanged();
  1265. }
  1266. });
  1267. //确定
  1268. sure_tv.setOnClickListener(new View.OnClickListener() {
  1269. @Override
  1270. public void onClick(View v) {
  1271. if(StringUtil.isEmpty(ma_id)){
  1272. CommonUtil.toastNoRepeat(mActivity,"请选择工单流水");
  1273. return;
  1274. }
  1275. et_linecode_smts.setText(ma_id);
  1276. tv_pr_code.setText(""+ma_bomversion);//pr_code ma_bomversion
  1277. // chan_code.setText(""+pr_code);
  1278. tv_pr_detail.setText(""+pr_detail);
  1279. tv_macode.setText(""+ma_code);
  1280. et_linecode_smts.clearFocus();
  1281. tv_dc_emcode.requestFocus();
  1282. ce_resources.clearFocus();
  1283. et_linecode_smts.setFocusable(false);
  1284. closeListPopupWindow();
  1285. }
  1286. });
  1287. //取消
  1288. cancle_tv.setOnClickListener(new View.OnClickListener() {
  1289. @Override
  1290. public void onClick(View v) {
  1291. closeListPopupWindow();
  1292. }
  1293. });
  1294. // edit_et.addTextChangedListener(new TextWatcher() {
  1295. // @Override
  1296. // public void beforeTextChanged(CharSequence s, int start, int count, int after) { }
  1297. // @Override
  1298. // public void onTextChanged(CharSequence s, int start, int before, int count) { }
  1299. // @Override
  1300. // public void afterTextChanged(Editable s) {
  1301. // if (linecodeBeanList.isEmpty()){
  1302. // getfuzzySearchData(et_linecode_smts.getText().toString().trim(),"弹框");
  1303. // }
  1304. // if (s.length() >= 0) {
  1305. // String mSearchStr = s.toString().trim();
  1306. // LogUtil.i("mSearchStr",mSearchStr);
  1307. // List<LinecodeBean> thisList = new ArrayList<>();
  1308. // for(int i=0;i<linecodeBeanList.size();i++){
  1309. // if(linecodeBeanList.get(i).getMA_CODE().contains(mSearchStr)){
  1310. // thisList.add(linecodeBeanList.get(i));
  1311. // }
  1312. // if(i == linecodeBeanList.size() -1){
  1313. // ipAndlinecodePortAdapter = new IpAndlinecodePortAdapter(thisList);
  1314. // rv_ip_port_data.setAdapter(ipAndlinecodePortAdapter);
  1315. // LogUtil.i("mSearchStr", JSON.toJSONString(thisList));
  1316. // }
  1317. // }
  1318. // ipAndlinecodePortAdapter.notifyDataSetChanged();
  1319. //
  1320. // } else {
  1321. //
  1322. // ipAndlinecodePortAdapter = new IpAndlinecodePortAdapter(linecodeBeanList);
  1323. // rv_ip_port_data.setAdapter(ipAndlinecodePortAdapter);
  1324. //
  1325. // }
  1326. // ipAndlinecodePortAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
  1327. // @Override
  1328. // public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
  1329. // List<LinecodeBean> ipAndPortBeans = ipAndlinecodePortAdapter.getmList();
  1330. // for (int i = 0; i < ipAndPortBeans.size(); i++) {
  1331. // ipAndPortBeans.get(i).setChecked(false);
  1332. // }
  1333. // ipAndPortBeans.get(position).setChecked(true);
  1334. // ipAndlinecodePortAdapter.notifyDataSetChanged();
  1335. // }
  1336. // });
  1337. // }
  1338. //
  1339. // });
  1340. }
  1341. /**
  1342. * 不良原因
  1343. */
  1344. public void recycleDataundesirable(String sc_code){
  1345. tv_undesirable.setVisibility(View.VISIBLE);
  1346. rv_undesirable.setVisibility(View.VISIBLE);
  1347. mFeededListundesirable = new ArrayList<>();
  1348. myAdapterundesirable = new SelectAdapterundesirable(mFeededListundesirable);
  1349. GridLayoutManager gridLayoutManager=new GridLayoutManager(mActivity,5);
  1350. LinearLayoutManager layoutmanager = new LinearLayoutManager(mActivity);
  1351. // MyLayoutManager layout = new MyLayoutManager();
  1352. // layout.setAutoMeasureEnabled(true);//防止recyclerview高度为wrap时测量item高度0(一定要加这个属性,否则显示不出来)
  1353. layoutmanager.setOrientation(LinearLayoutManager.HORIZONTAL);//列表横向显示
  1354. rv_undesirable.setLayoutManager(gridLayoutManager);
  1355. setAdapterundesirable(mFeededListundesirable);
  1356. rv_undesirable.setAdapter(myAdapterundesirable);
  1357. JSONObject jsonObject = new JSONObject();
  1358. JSONArray jsonArray = new JSONArray();
  1359. JSONObject object_1 = new JSONObject();
  1360. List<String> list=new ArrayList<>();
  1361. if (sc_code.equals("炉前目检")){
  1362. list.add("少件");
  1363. list.add("错件");
  1364. list.add("反向");
  1365. list.add("歪斜");
  1366. list.add("错孔");
  1367. list.add("不出脚");
  1368. list.add("其他");
  1369. }else if (sc_code.equals("检焊目检")){
  1370. list.add("少件");
  1371. list.add("错件");
  1372. list.add("反向");
  1373. list.add("歪斜");
  1374. list.add("错孔");
  1375. list.add("空焊");
  1376. list.add("连锡");
  1377. list.add("少锡");
  1378. list.add("不出脚");
  1379. list.add("其他");
  1380. }else if (sc_code.equals("线材目检")){
  1381. list.add("空焊");
  1382. list.add("连锡");
  1383. list.add("少锡");
  1384. list.add("反向");
  1385. list.add("错孔");
  1386. list.add("不出脚");
  1387. list.add("其他");
  1388. }else {
  1389. list.clear();
  1390. tv_undesirable.setVisibility(View.GONE);
  1391. rv_undesirable.setVisibility(View.GONE);
  1392. }
  1393. for (int i=0;i<list.size();i++){
  1394. StorageRechargeAloneBean bean=new StorageRechargeAloneBean(list.get(i));
  1395. object_1.put("alone", list.get(i));
  1396. jsonArray.add(bean);
  1397. }
  1398. jsonObject.put("formStore", jsonArray);
  1399. JSONArray dataArray = FastjsonUtil.getJSONArray(jsonObject.toString(), "formStore");
  1400. handleFeededDataundesirable(dataArray);
  1401. }
  1402. private void handleFeededDataundesirable(JSONArray dataArray) {
  1403. StorageRechargeAloneBean bean;
  1404. mFeededListundesirable.clear();
  1405. for (Object index : dataArray) {
  1406. JSONObject data = (JSONObject) index;
  1407. bean= new StorageRechargeAloneBean(
  1408. data.getString("alonedata"));
  1409. mFeededListundesirable.add(bean);
  1410. }
  1411. setAdapterundesirable(mFeededListundesirable);
  1412. }
  1413. private void setAdapterundesirable(ArrayList<StorageRechargeAloneBean> mList) {
  1414. LogUtil.i("mList", JSON.toJSONString(mList));
  1415. myAdapterundesirable = new SelectAdapterundesirable(mList);
  1416. rv_undesirable.setAdapter(myAdapterundesirable);
  1417. }
  1418. /**
  1419. * 原件位号1~9
  1420. */
  1421. public void recyclemaster_copyData(String sc_code){
  1422. tb_master.setVisibility(View.GONE);
  1423. if (sc_code.equals("炉前目检")||sc_code.equals("检焊目检")){
  1424. tb_master.setVisibility(View.VISIBLE);
  1425. }
  1426. passmastelist = new ArrayList<>();
  1427. selectmasterAdapterQty = new SelectmasterAdapterQty(passmastelist);
  1428. LinearLayoutManager layoutmanagertwo = new LinearLayoutManager(mActivity);
  1429. layoutmanagertwo.setOrientation(LinearLayoutManager.HORIZONTAL);//列表横向显示
  1430. rv_master_copy.setLayoutManager(layoutmanagertwo);
  1431. setAdaptermaster(passmastelist);
  1432. rv_master_copy.setAdapter(selectmasterAdapterQty);
  1433. List<String> list=new ArrayList<>();
  1434. list.add("1");
  1435. list.add("2");
  1436. list.add("3");
  1437. list.add("4");
  1438. list.add("5");
  1439. list.add("6");
  1440. list.add("7");
  1441. list.add("8");
  1442. list.add("9");
  1443. JSONObject jsonObject = new JSONObject();
  1444. JSONArray jsonArray = new JSONArray();
  1445. JSONObject object_1 = new JSONObject();
  1446. for (int i=0;i<list.size();i++){
  1447. StorageRechargeAloneBean bean=new StorageRechargeAloneBean(list.get(i));
  1448. object_1.put("alone", list.get(i));
  1449. jsonArray.add(bean);
  1450. }
  1451. jsonObject.put("formStore", jsonArray);
  1452. Log.e("alone===2",jsonObject.toString());
  1453. JSONArray dataArray = FastjsonUtil.getJSONArray(jsonObject.toString(), "formStore");
  1454. handleFeedemaster(dataArray);
  1455. }
  1456. private void handleFeedemaster(JSONArray dataArray){
  1457. StorageRechargeAloneBean bean;
  1458. passmastelist.clear();
  1459. for (Object index : dataArray) {
  1460. JSONObject data = (JSONObject) index;
  1461. bean= new StorageRechargeAloneBean(
  1462. data.getString("alonedata"));
  1463. passmastelist.add(bean);
  1464. }
  1465. setAdaptermaster(passmastelist);
  1466. }
  1467. private void setAdaptermaster(ArrayList<StorageRechargeAloneBean> mList) {
  1468. LogUtil.i("mList", JSON.toJSONString(mList));
  1469. selectmasterAdapterQty = new SelectmasterAdapterQty(mList);
  1470. rv_master_copy.setAdapter(selectmasterAdapterQty);
  1471. }
  1472. /**
  1473. * 原件位号0~9
  1474. */
  1475. public void recycleoriginal_copyData(String sc_code){
  1476. tb_master.setVisibility(View.GONE);
  1477. if (sc_code.equals("炉前目检")||sc_code.equals("检焊目检")){
  1478. tb_master.setVisibility(View.VISIBLE);
  1479. }
  1480. passoriginallist = new ArrayList<>();
  1481. selectoriginaAdapterQty = new SelectoriginalAdapterQty(passoriginallist);
  1482. LinearLayoutManager layoutmanagertwo = new LinearLayoutManager(mActivity);
  1483. layoutmanagertwo.setOrientation(LinearLayoutManager.HORIZONTAL);//列表横向显示
  1484. rv_original_copy.setLayoutManager(layoutmanagertwo);
  1485. setAdapteroriginal(passoriginallist);
  1486. rv_original_copy.setAdapter(selectoriginaAdapterQty);
  1487. List<String> list=new ArrayList<>();
  1488. list.add("0");
  1489. list.add("1");
  1490. list.add("2");
  1491. list.add("3");
  1492. list.add("4");
  1493. list.add("5");
  1494. list.add("6");
  1495. list.add("7");
  1496. list.add("8");
  1497. list.add("9");
  1498. JSONObject jsonObject = new JSONObject();
  1499. JSONArray jsonArray = new JSONArray();
  1500. JSONObject object_1 = new JSONObject();
  1501. for (int i=0;i<list.size();i++){
  1502. StorageRechargeAloneBean bean=new StorageRechargeAloneBean(list.get(i));
  1503. object_1.put("alone", list.get(i));
  1504. jsonArray.add(bean);
  1505. }
  1506. jsonObject.put("formStore", jsonArray);
  1507. Log.e("alone===2",jsonObject.toString());
  1508. JSONArray dataArray = FastjsonUtil.getJSONArray(jsonObject.toString(), "formStore");
  1509. handleFeedeoriginal(dataArray);
  1510. }
  1511. private void handleFeedeoriginal(JSONArray dataArray){
  1512. StorageRechargeAloneBean bean;
  1513. passoriginallist.clear();
  1514. for (Object index : dataArray) {
  1515. JSONObject data = (JSONObject) index;
  1516. bean= new StorageRechargeAloneBean(
  1517. data.getString("alonedata"));
  1518. passoriginallist.add(bean);
  1519. }
  1520. setAdapteroriginal(passoriginallist);
  1521. }
  1522. private void setAdapteroriginal(ArrayList<StorageRechargeAloneBean> mList) {
  1523. LogUtil.i("mList", JSON.toJSONString(mList));
  1524. selectoriginaAdapterQty = new SelectoriginalAdapterQty(mList);
  1525. rv_original_copy.setAdapter(selectoriginaAdapterQty);
  1526. }
  1527. /**
  1528. * 原件颜色
  1529. */
  1530. public void recyclemaster_colorData(String sc_code){
  1531. tb_color.setVisibility(View.GONE);
  1532. if (sc_code.equals("线材目检")){
  1533. tb_color.setVisibility(View.VISIBLE);
  1534. }
  1535. mastercolorlist = new ArrayList<>();
  1536. selectmaster_colorAdapterQty = new Selectmaster_colorAdapterQty(mastercolorlist);
  1537. LinearLayoutManager layoutmanagertwo = new LinearLayoutManager(mActivity);
  1538. layoutmanagertwo.setOrientation(LinearLayoutManager.HORIZONTAL);//列表横向显示
  1539. rv_mastercolor.setLayoutManager(layoutmanagertwo);
  1540. setAdaptermaster_color(mastercolorlist);
  1541. rv_mastercolor.setAdapter(selectmaster_colorAdapterQty);
  1542. List<String> list=new ArrayList<>();
  1543. list.add("绿色");
  1544. list.add("紫色");
  1545. list.add("蓝色");
  1546. list.add("红色");
  1547. list.add("黑色");
  1548. list.add("其他");
  1549. JSONObject jsonObject = new JSONObject();
  1550. JSONArray jsonArray = new JSONArray();
  1551. JSONObject object_1 = new JSONObject();
  1552. for (int i=0;i<list.size();i++){
  1553. StorageRechargeAloneBean bean=new StorageRechargeAloneBean(list.get(i));
  1554. object_1.put("alone", list.get(i));
  1555. jsonArray.add(bean);
  1556. }
  1557. jsonObject.put("formStore", jsonArray);
  1558. Log.e("alone===2",jsonObject.toString());
  1559. JSONArray dataArray = FastjsonUtil.getJSONArray(jsonObject.toString(), "formStore");
  1560. handleFeedemaster_color(dataArray);
  1561. }
  1562. private void handleFeedemaster_color(JSONArray dataArray){
  1563. StorageRechargeAloneBean bean;
  1564. mastercolorlist.clear();
  1565. for (Object index : dataArray) {
  1566. JSONObject data = (JSONObject) index;
  1567. bean= new StorageRechargeAloneBean(
  1568. data.getString("alonedata"));
  1569. mastercolorlist.add(bean);
  1570. }
  1571. setAdaptermaster_color(mastercolorlist);
  1572. }
  1573. private void setAdaptermaster_color(ArrayList<StorageRechargeAloneBean> mList) {
  1574. LogUtil.i("mList", JSON.toJSONString(mList));
  1575. selectmaster_colorAdapterQty = new Selectmaster_colorAdapterQty(mList);
  1576. rv_mastercolor.setAdapter(selectmaster_colorAdapterQty);
  1577. }
  1578. /**
  1579. * 不良现象
  1580. */
  1581. private void getunhealthyDataList(String sc_code){
  1582. List<String> linelist=new ArrayList<>();
  1583. JSONObject jsonObjectce = new JSONObject();
  1584. JSONArray jsonArrayce = new JSONArray();
  1585. JSONObject object_1ce = new JSONObject();
  1586. if (sc_code.equals("炉前目检")||sc_code.equals("检焊目检")){
  1587. linelist.add("电阻");
  1588. linelist.add("电容");
  1589. linelist.add("电感");
  1590. linelist.add("保险");
  1591. linelist.add("桥堆");
  1592. linelist.add("二极管");
  1593. linelist.add("三极管");
  1594. linelist.add("IC");
  1595. linelist.add("共模电感");
  1596. linelist.add("变压器");
  1597. linelist.add("热敏");
  1598. linelist.add("安规电容");
  1599. linelist.add("其他");
  1600. }else if (sc_code.equals("组装外观目检")||sc_code.equals("包装外观目检")){
  1601. linelist.add("磕伤");
  1602. linelist.add("划伤");
  1603. linelist.add("白胶");
  1604. linelist.add("黄胶");
  1605. linelist.add("断差");
  1606. linelist.add("压伤");
  1607. linelist.add("脏污");
  1608. linelist.add("缝隙大");
  1609. linelist.add("USB错位");
  1610. linelist.add("贴标");
  1611. linelist.add("镭雕");
  1612. linelist.add("来料");
  1613. linelist.add("其他");
  1614. }else if (sc_code.equals("线材目检")){
  1615. linelist.add("AC线");
  1616. linelist.add("DC线");
  1617. linelist.add("其他");
  1618. }else if (sc_code.equals("组装测试")){
  1619. linelist.add("无输出");
  1620. linelist.add("电压高");
  1621. linelist.add("电压低");
  1622. linelist.add("电流高");
  1623. linelist.add("电流低");
  1624. linelist.add("纹波大");
  1625. linelist.add("纹波小");
  1626. linelist.add("起机慢");
  1627. linelist.add("AC短路");
  1628. linelist.add("DC短路");
  1629. linelist.add("OCP不保护");
  1630. linelist.add("电压跳变");
  1631. linelist.add("拐点不良");
  1632. linelist.add("耐压不良");
  1633. linelist.add("绝缘电阻");
  1634. linelist.add("能效不良");
  1635. linelist.add("其他");
  1636. }
  1637. else {
  1638. linelist.clear();
  1639. }
  1640. for (int i = 0; i< linelist.size(); i++){
  1641. StorageRechargeAloneBean bean=new StorageRechargeAloneBean(linelist.get(i));
  1642. object_1ce.put("alone", linelist.get(i));
  1643. jsonArrayce.add(bean);
  1644. }
  1645. jsonObjectce.put("formStore", jsonArrayce);
  1646. JSONArray dataArrayce = FastjsonUtil.getJSONArray(jsonObjectce.toString(), "formStore");
  1647. handleFeededData(dataArrayce);
  1648. }
  1649. /**
  1650. * 岗位资源
  1651. */
  1652. private void getlineDataList(){
  1653. List<String> linelist=new ArrayList<>();
  1654. linelist.add("炉前目检");
  1655. linelist.add("检焊目检");
  1656. linelist.add("线材目检");
  1657. linelist.add("组装测试");
  1658. linelist.add("组装外观目检");
  1659. linelist.add("包装外观目检");
  1660. JSONObject jsonObject = new JSONObject();
  1661. JSONArray jsonArray = new JSONArray();
  1662. JSONObject object_1 = new JSONObject();
  1663. for (int i=0;i<linelist.size();i++){
  1664. StorageRechargeAloneBean bean=new StorageRechargeAloneBean(linelist.get(i));
  1665. object_1.put("alone", linelist.get(i));
  1666. jsonArray.add(bean);
  1667. }
  1668. jsonObject.put("formStore", jsonArray);
  1669. Log.e("alone===2",jsonObject.toString());
  1670. JSONArray dataArray = FastjsonUtil.getJSONArray(jsonObject.toString(), "formStore");
  1671. handleFeededlineData(dataArray);
  1672. }
  1673. private void handleFeededlineData(JSONArray dataArray) {
  1674. ResourcesBean bean;
  1675. resourcesBeanList.clear();
  1676. for (Object index : dataArray) {
  1677. JSONObject data = (JSONObject) index;
  1678. bean= new ResourcesBean();
  1679. bean.setSC_CODE(data.getString("alonedata"));
  1680. resourcesBeanList.add(bean);
  1681. }
  1682. setlineAdapter(resourcesBeanList);
  1683. }
  1684. private void setlineAdapter(ArrayList<ResourcesBean> mList) {
  1685. LogUtil.i("mList", JSON.toJSONString(mList));
  1686. ipAndResourcesPortAdapter = new IpAndResourcesPortAdapter(mList);
  1687. ipAndResourcesPortAdapter.setmList(resourcesBeanList);
  1688. ipAndResourcesPortAdapter.notifyDataSetChanged();
  1689. rv_line_ip_port_data.setAdapter(ipAndResourcesPortAdapter);
  1690. }
  1691. /**
  1692. * 关于岗位资源弹框
  1693. */
  1694. private void initresourcesPopupWindow() {
  1695. View contView = LayoutInflater.from(mActivity).inflate(R.layout.index_edit_pup, null);
  1696. edit_et = (ClearableEditText) contView.findViewById(R.id.edit_et);
  1697. TextView sure_tv = (TextView) contView.findViewById(R.id.sure_tv);
  1698. TextView cancle_tv = (TextView) contView.findViewById(R.id.cancle_tv);
  1699. ImageView search_im = contView.findViewById(R.id.search_im);
  1700. LinearLayout line_top = contView.findViewById(R.id.line_top);
  1701. line_top.setVisibility(View.GONE);
  1702. rv_line_ip_port_data = contView.findViewById(R.id.rv_ip_port_data);
  1703. rv_line_ip_port_data.addItemDecoration(new DividerItemDecoration(mActivity, LinearLayout.VERTICAL));
  1704. rv_line_ip_port_data.setLayoutManager(new LinearLayoutManager(mActivity));
  1705. ipAndResourcesPortAdapter.setmList(resourcesBeanList);
  1706. rv_line_ip_port_data.setAdapter(ipAndResourcesPortAdapter);
  1707. // getfuzzySearchSourceData(edit_et.getText().toString().trim(),"弹框");
  1708. getlineDataList();
  1709. editPW = new PopupWindow(contView, LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT, true);
  1710. editPW.setTouchable(true);
  1711. editPW.setBackgroundDrawable(new BitmapDrawable());
  1712. editPW.setOnDismissListener(new BasePopupWindow.OnDismissListener() {
  1713. @Override
  1714. public void onDismiss() {
  1715. closeListPopupWindow();
  1716. }
  1717. });
  1718. View parentView = mActivity.getWindow().findViewById(Window.ID_ANDROID_CONTENT);
  1719. editPW.showAtLocation(parentView, Gravity.CENTER, 0, 0);
  1720. CommonUtil.setBackgroundAlpha(mActivity, 0.5f);
  1721. search_im.setOnClickListener(new View.OnClickListener() {
  1722. @Override
  1723. public void onClick(View v) {
  1724. // getfuzzySearchSourceData(edit_et.getText().toString().trim(),"弹框");
  1725. }
  1726. });
  1727. ipAndResourcesPortAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
  1728. @Override
  1729. public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
  1730. List<ResourcesBean> ipAndPortBeans = ipAndResourcesPortAdapter.getmList();
  1731. sc_code = ipAndPortBeans.get(position).getSC_CODE();
  1732. st_remark = ipAndPortBeans.get(position).getST_REMARK();
  1733. for (int i = 0; i < ipAndPortBeans.size(); i++) {
  1734. ipAndPortBeans.get(i).setChecked(false);
  1735. }
  1736. ipAndPortBeans.get(position).setChecked(true);
  1737. ipAndResourcesPortAdapter.notifyDataSetChanged();
  1738. }
  1739. });
  1740. List<String> list=new ArrayList<>();
  1741. //确定
  1742. sure_tv.setOnClickListener(new View.OnClickListener() {
  1743. @Override
  1744. public void onClick(View v) {
  1745. list.clear();
  1746. if (!StringUtil.isEmpty(sc_code)){
  1747. SharedPreUtil.saveString(mActivity,"sc_codecolleone",sc_code);
  1748. }else {
  1749. CommonUtil.toastNoRepeat(mActivity,"请选择岗位资源");
  1750. return;
  1751. }
  1752. ce_resources.setText(sc_code);
  1753. ce_resources.setFocusable(false);
  1754. tv_station.setText("当前岗位:"+sc_code);
  1755. tv_station.clearFocus();
  1756. tv_dc_emcode.clearFocus();
  1757. ce_resources.clearFocus();
  1758. getunhealthyDataList(sc_code);
  1759. recycleDataundesirable(sc_code);
  1760. recyclemaster_copyData(sc_code);
  1761. recycleoriginal_copyData(sc_code);
  1762. recyclemaster_colorData(sc_code);
  1763. closeListPopupWindow();
  1764. }
  1765. });
  1766. //取消
  1767. cancle_tv.setOnClickListener(new View.OnClickListener() {
  1768. @Override
  1769. public void onClick(View v) {
  1770. closeListPopupWindow();
  1771. }
  1772. });
  1773. // edit_et.addTextChangedListener(new TextWatcher() {
  1774. // @Override
  1775. // public void beforeTextChanged(CharSequence s, int start, int count, int after) { }
  1776. // @Override
  1777. // public void onTextChanged(CharSequence s, int start, int before, int count) { }
  1778. // @Override
  1779. // public void afterTextChanged(Editable s) {
  1780. // if (resourcesBeanList.isEmpty()){
  1781. // getfuzzySearchSourceData(edit_et.getText().toString().trim(),"不良");
  1782. // }
  1783. // if (s.length() >= 0) {
  1784. // String mSearchStr = s.toString().trim();
  1785. // LogUtil.i("mSearchStr",mSearchStr);
  1786. // List<ResourcesBean> thisList = new ArrayList<>();
  1787. // for(int i=0;i<resourcesBeanList.size();i++){
  1788. // if(resourcesBeanList.get(i).getSC_CODE().contains(mSearchStr)){
  1789. // thisList.add(resourcesBeanList.get(i));
  1790. // }
  1791. // if(i == resourcesBeanList.size() -1){
  1792. // ipAndResourcesPortAdapter = new IpAndResourcesPortAdapter(thisList);
  1793. // rv_ip_port_data.setAdapter(ipAndResourcesPortAdapter);
  1794. // LogUtil.i("mSearchStr", JSON.toJSONString(thisList));
  1795. // }
  1796. // }
  1797. // ipAndResourcesPortAdapter.notifyDataSetChanged();
  1798. //
  1799. // } else {
  1800. //
  1801. // ipAndResourcesPortAdapter = new IpAndResourcesPortAdapter(resourcesBeanList);
  1802. // rv_ip_port_data.setAdapter(ipAndResourcesPortAdapter);
  1803. //
  1804. // }
  1805. // ipAndResourcesPortAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
  1806. // @Override
  1807. // public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
  1808. // List<ResourcesBean> ipAndPortBeans = ipAndResourcesPortAdapter.getmList();
  1809. // for (int i = 0; i < ipAndPortBeans.size(); i++) {
  1810. // ipAndPortBeans.get(i).setChecked(false);
  1811. // }
  1812. // ipAndPortBeans.get(position).setChecked(true);
  1813. // ipAndResourcesPortAdapter.notifyDataSetChanged();
  1814. // }
  1815. // });
  1816. // }
  1817. //
  1818. // });
  1819. }
  1820. public class SelectAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
  1821. private int checkedPosition = -1;
  1822. private boolean onBind;
  1823. private ArrayList<StorageRechargeAloneBean> mList = new ArrayList<>();
  1824. private SparseBooleanArray mSelectedPositions = new SparseBooleanArray();
  1825. private boolean mIsSelectable = false;
  1826. public SelectAdapter(ArrayList<StorageRechargeAloneBean> list) {
  1827. if (list == null) {
  1828. throw new IllegalArgumentException("model Data must not be null");
  1829. }
  1830. mList = list;
  1831. }
  1832. //更新adpter的数据和选择状态
  1833. public void updateDataSet(ArrayList<StorageRechargeAloneBean> list) {
  1834. this.mList = list;
  1835. mSelectedPositions = new SparseBooleanArray();
  1836. // ab.setTitle("已选择" + 0 + "项");
  1837. }
  1838. @Override
  1839. public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
  1840. View itemView = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.recyclerview_item_data, viewGroup, false);
  1841. return new SelectAdapter.ListItemViewHolder(itemView);
  1842. }
  1843. private Map<Integer, Boolean> map = new HashMap<>();
  1844. //绑定界面,设置监听
  1845. @SuppressLint("SetTextI18n")
  1846. @Override
  1847. public void onBindViewHolder(final RecyclerView.@NotNull ViewHolder holder, @SuppressLint("RecyclerView") int i) {
  1848. //设置条目状态
  1849. (( SelectAdapter.ListItemViewHolder) holder).mainTitle.setText(mList.get(i).getAlonedata());
  1850. if (mList.get(i).getAlonedata().equals("其他")){
  1851. (( SelectAdapter.ListItemViewHolder) holder).ce_other.setVisibility(View.VISIBLE);
  1852. (( SelectAdapter.ListItemViewHolder) holder).mainTitle.setVisibility(View.GONE);
  1853. }else {
  1854. (( SelectAdapter.ListItemViewHolder) holder).ce_other.setVisibility(View.GONE);
  1855. (( SelectAdapter.ListItemViewHolder) holder).mainTitle.setVisibility(View.VISIBLE);
  1856. }
  1857. // ((ListItemViewHolder) holder).checkBox.setChecked();
  1858. //checkBox的监听
  1859. (( SelectAdapter.ListItemViewHolder) holder).checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
  1860. @Override
  1861. public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
  1862. if (isChecked == true) {
  1863. map.clear();
  1864. map.put(i, true);
  1865. checkedPosition = i;
  1866. } else {
  1867. map.remove(i);
  1868. if (map.size() == 0) {
  1869. checkedPosition = -1; //-1 代表一个都未选择
  1870. }
  1871. }
  1872. if (!onBind) {
  1873. notifyDataSetChanged();
  1874. }
  1875. }
  1876. });
  1877. onBind = true;
  1878. if (map != null && map.containsKey(i)) {
  1879. (( SelectAdapter.ListItemViewHolder) holder).checkBox.setChecked(true);
  1880. } else {
  1881. (( SelectAdapter.ListItemViewHolder) holder).checkBox.setChecked(false);
  1882. }
  1883. onBind = false;
  1884. ((SelectAdapter.ListItemViewHolder) holder).ce_other.addTextChangedListener(new TextWatcher() {
  1885. @Override
  1886. public void beforeTextChanged(CharSequence s, int start, int count, int after) {
  1887. }
  1888. @Override
  1889. public void onTextChanged(CharSequence s, int start, int before, int count) {
  1890. mList.get(i).setInputce(((SelectAdapter.ListItemViewHolder) holder).ce_other.getText().toString().trim());
  1891. }
  1892. @Override
  1893. public void afterTextChanged(Editable s) {
  1894. }
  1895. });
  1896. }
  1897. //获得选中条目的结果
  1898. public ArrayList<StorageRechargeAloneBean> getSelectedItem() {
  1899. ArrayList<StorageRechargeAloneBean> selectList = new ArrayList<>();
  1900. int checkedPosition = getCheckedPosition();
  1901. if (checkedPosition==-1){
  1902. selectList.clear();
  1903. }else {
  1904. selectList.add(mList.get(checkedPosition));
  1905. }
  1906. return selectList;
  1907. }
  1908. //设置给定位置条目的选择状态
  1909. private void setItemChecked(int position, boolean isChecked) {
  1910. mSelectedPositions.put(position, isChecked);
  1911. }
  1912. //根据位置判断条目是否选中
  1913. private boolean isItemChecked(int position) {
  1914. return mSelectedPositions.get(position);
  1915. }
  1916. //得到当前选中的位置
  1917. public int getCheckedPosition() {
  1918. return checkedPosition;
  1919. }
  1920. @Override
  1921. public int getItemCount() {
  1922. return mList == null ? 0 : mList.size();
  1923. }
  1924. //根据位置判断条目是否可选
  1925. private boolean isSelectable() {
  1926. return mIsSelectable;
  1927. }
  1928. //设置给定位置条目的可选与否的状态
  1929. private void setSelectable(boolean selectable) {
  1930. mIsSelectable = selectable;
  1931. }
  1932. public class ListItemViewHolder extends RecyclerView.ViewHolder{
  1933. //ViewHolder
  1934. CheckBox checkBox;
  1935. TextView mainTitle;
  1936. ClearableEditText ce_other;
  1937. ListItemViewHolder(View view) {
  1938. super(view);
  1939. this.mainTitle = (TextView) view.findViewById(R.id.text);
  1940. this.checkBox = (CheckBox) view.findViewById(R.id.select_checkbox);
  1941. this.ce_other = (ClearableEditText) view.findViewById(R.id.ce_other);
  1942. }
  1943. }
  1944. }
  1945. public class Selectmaster_colorAdapterQty extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
  1946. private int checkedPosition = -1;
  1947. private boolean onBind;
  1948. private ArrayList<StorageRechargeAloneBean> mList = new ArrayList<>();
  1949. private SparseBooleanArray mSelectedPositions = new SparseBooleanArray();
  1950. private boolean mIsSelectable = false;
  1951. public Selectmaster_colorAdapterQty(ArrayList<StorageRechargeAloneBean> list) {
  1952. if (list == null) {
  1953. throw new IllegalArgumentException("model Data must not be null");
  1954. }
  1955. mList = list;
  1956. }
  1957. //更新adpter的数据和选择状态
  1958. public void updateDataSet(ArrayList<StorageRechargeAloneBean> list) {
  1959. this.mList = list;
  1960. mSelectedPositions = new SparseBooleanArray();
  1961. // ab.setTitle("已选择" + 0 + "项");
  1962. }
  1963. @Override
  1964. public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
  1965. View itemView = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.recyclerview_master, viewGroup, false);
  1966. return new Selectmaster_colorAdapterQty.ListItemViewHolder(itemView);
  1967. }
  1968. private Map<Integer, Boolean> map = new HashMap<>();
  1969. //绑定界面,设置监听
  1970. @SuppressLint("SetTextI18n")
  1971. @Override
  1972. public void onBindViewHolder(final RecyclerView.@NotNull ViewHolder holder, @SuppressLint("RecyclerView") int i) {
  1973. //设置条目状态
  1974. (( Selectmaster_colorAdapterQty.ListItemViewHolder) holder).mainTitle.setText(mList.get(i).getAlonedata());
  1975. ((Selectmaster_colorAdapterQty.ListItemViewHolder) holder).ce_other.setVisibility(View.GONE);
  1976. // ((ListItemViewHolder) holder).checkBox.setChecked();
  1977. //checkBox的监听
  1978. ((Selectmaster_colorAdapterQty.ListItemViewHolder) holder).checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
  1979. @Override
  1980. public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
  1981. if (isChecked == true) {
  1982. map.clear();
  1983. map.put(i, true);
  1984. checkedPosition = i;
  1985. } else {
  1986. map.remove(i);
  1987. if (map.size() == 0) {
  1988. checkedPosition = -1; //-1 代表一个都未选择
  1989. }
  1990. }
  1991. if (!onBind) {
  1992. notifyDataSetChanged();
  1993. }
  1994. }
  1995. });
  1996. onBind = true;
  1997. if (map != null && map.containsKey(i)) {
  1998. (( Selectmaster_colorAdapterQty.ListItemViewHolder) holder).checkBox.setChecked(true);
  1999. } else {
  2000. (( Selectmaster_colorAdapterQty.ListItemViewHolder) holder).checkBox.setChecked(false);
  2001. }
  2002. onBind = false;
  2003. (( Selectmaster_colorAdapterQty.ListItemViewHolder) holder).ce_other.addTextChangedListener(new TextWatcher() {
  2004. @Override
  2005. public void beforeTextChanged(CharSequence s, int start, int count, int after) {
  2006. }
  2007. @Override
  2008. public void onTextChanged(CharSequence s, int start, int before, int count) {
  2009. mList.get(i).setInputce((( Selectmaster_colorAdapterQty.ListItemViewHolder) holder).ce_other.getText().toString().trim());
  2010. }
  2011. @Override
  2012. public void afterTextChanged(Editable s) {
  2013. }
  2014. });
  2015. }
  2016. //获得选中条目的结果
  2017. public ArrayList<StorageRechargeAloneBean> getSelectedItem() {
  2018. ArrayList<StorageRechargeAloneBean> selectList = new ArrayList<>();
  2019. int checkedPosition = getCheckedPosition();
  2020. if (checkedPosition==-1){
  2021. selectList.clear();
  2022. }else {
  2023. selectList.add(mList.get(checkedPosition));
  2024. }
  2025. return selectList;
  2026. }
  2027. //设置给定位置条目的选择状态
  2028. private void setItemChecked(int position, boolean isChecked) {
  2029. mSelectedPositions.put(position, isChecked);
  2030. }
  2031. //根据位置判断条目是否选中
  2032. private boolean isItemChecked(int position) {
  2033. return mSelectedPositions.get(position);
  2034. }
  2035. //得到当前选中的位置
  2036. public int getCheckedPosition() {
  2037. return checkedPosition;
  2038. }
  2039. @Override
  2040. public int getItemCount() {
  2041. return mList == null ? 0 : mList.size();
  2042. }
  2043. //根据位置判断条目是否可选
  2044. private boolean isSelectable() {
  2045. return mIsSelectable;
  2046. }
  2047. //设置给定位置条目的可选与否的状态
  2048. private void setSelectable(boolean selectable) {
  2049. mIsSelectable = selectable;
  2050. }
  2051. public class ListItemViewHolder extends RecyclerView.ViewHolder{
  2052. //ViewHolder
  2053. CheckBox checkBox;
  2054. TextView mainTitle;
  2055. ClearableEditText ce_other;
  2056. ListItemViewHolder(View view) {
  2057. super(view);
  2058. this.mainTitle = (TextView) view.findViewById(R.id.text);
  2059. this.checkBox = (CheckBox) view.findViewById(R.id.select_checkbox);
  2060. this.ce_other = (ClearableEditText) view.findViewById(R.id.ce_other);
  2061. }
  2062. }
  2063. }
  2064. public class SelectoriginalAdapterQty extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
  2065. private int checkedPosition = -1;
  2066. private boolean onBind;
  2067. private ArrayList<StorageRechargeAloneBean> mList = new ArrayList<>();
  2068. private SparseBooleanArray mSelectedPositions = new SparseBooleanArray();
  2069. private boolean mIsSelectable = false;
  2070. public SelectoriginalAdapterQty(ArrayList<StorageRechargeAloneBean> list) {
  2071. if (list == null) {
  2072. throw new IllegalArgumentException("model Data must not be null");
  2073. }
  2074. mList = list;
  2075. }
  2076. //更新adpter的数据和选择状态
  2077. public void updateDataSet(ArrayList<StorageRechargeAloneBean> list) {
  2078. this.mList = list;
  2079. mSelectedPositions = new SparseBooleanArray();
  2080. // ab.setTitle("已选择" + 0 + "项");
  2081. }
  2082. @Override
  2083. public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
  2084. View itemView = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.recyclerview_item, viewGroup, false);
  2085. return new SelectoriginalAdapterQty.ListItemViewHolder(itemView);
  2086. }
  2087. private Map<Integer, Boolean> map = new HashMap<>();
  2088. //绑定界面,设置监听
  2089. @SuppressLint("SetTextI18n")
  2090. @Override
  2091. public void onBindViewHolder(final RecyclerView.@NotNull ViewHolder holder, @SuppressLint("RecyclerView") int i) {
  2092. //设置条目状态
  2093. (( SelectoriginalAdapterQty.ListItemViewHolder) holder).mainTitle.setTextSize(15);
  2094. (( SelectoriginalAdapterQty.ListItemViewHolder) holder).mainTitle.setText(mList.get(i).getAlonedata());
  2095. ((SelectoriginalAdapterQty.ListItemViewHolder) holder).ce_other.setVisibility(View.GONE);
  2096. // ((ListItemViewHolder) holder).checkBox.setChecked();
  2097. //checkBox的监听
  2098. ((SelectoriginalAdapterQty.ListItemViewHolder) holder).checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
  2099. @Override
  2100. public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
  2101. if (isChecked == true) {
  2102. map.clear();
  2103. map.put(i, true);
  2104. checkedPosition = i;
  2105. } else {
  2106. map.remove(i);
  2107. if (map.size() == 0) {
  2108. checkedPosition = -1; //-1 代表一个都未选择
  2109. }
  2110. }
  2111. if (!onBind) {
  2112. notifyDataSetChanged();
  2113. }
  2114. }
  2115. });
  2116. onBind = true;
  2117. if (map != null && map.containsKey(i)) {
  2118. (( SelectoriginalAdapterQty.ListItemViewHolder) holder).checkBox.setChecked(true);
  2119. } else {
  2120. (( SelectoriginalAdapterQty.ListItemViewHolder) holder).checkBox.setChecked(false);
  2121. }
  2122. onBind = false;
  2123. (( SelectoriginalAdapterQty.ListItemViewHolder) holder).ce_other.addTextChangedListener(new TextWatcher() {
  2124. @Override
  2125. public void beforeTextChanged(CharSequence s, int start, int count, int after) {
  2126. }
  2127. @Override
  2128. public void onTextChanged(CharSequence s, int start, int before, int count) {
  2129. mList.get(i).setInputce((( SelectoriginalAdapterQty.ListItemViewHolder) holder).ce_other.getText().toString().trim());
  2130. }
  2131. @Override
  2132. public void afterTextChanged(Editable s) {
  2133. }
  2134. });
  2135. }
  2136. //获得选中条目的结果
  2137. public ArrayList<StorageRechargeAloneBean> getSelectedItem() {
  2138. ArrayList<StorageRechargeAloneBean> selectList = new ArrayList<>();
  2139. int checkedPosition = getCheckedPosition();
  2140. if (checkedPosition==-1){
  2141. selectList.clear();
  2142. }else {
  2143. selectList.add(mList.get(checkedPosition));
  2144. }
  2145. return selectList;
  2146. }
  2147. //设置给定位置条目的选择状态
  2148. private void setItemChecked(int position, boolean isChecked) {
  2149. mSelectedPositions.put(position, isChecked);
  2150. }
  2151. //根据位置判断条目是否选中
  2152. private boolean isItemChecked(int position) {
  2153. return mSelectedPositions.get(position);
  2154. }
  2155. //得到当前选中的位置
  2156. public int getCheckedPosition() {
  2157. return checkedPosition;
  2158. }
  2159. @Override
  2160. public int getItemCount() {
  2161. return mList == null ? 0 : mList.size();
  2162. }
  2163. //根据位置判断条目是否可选
  2164. private boolean isSelectable() {
  2165. return mIsSelectable;
  2166. }
  2167. //设置给定位置条目的可选与否的状态
  2168. private void setSelectable(boolean selectable) {
  2169. mIsSelectable = selectable;
  2170. }
  2171. public class ListItemViewHolder extends RecyclerView.ViewHolder{
  2172. //ViewHolder
  2173. CheckBox checkBox;
  2174. TextView mainTitle;
  2175. ClearableEditText ce_other;
  2176. ListItemViewHolder(View view) {
  2177. super(view);
  2178. this.mainTitle = (TextView) view.findViewById(R.id.text);
  2179. this.checkBox = (CheckBox) view.findViewById(R.id.select_checkbox);
  2180. this.ce_other = (ClearableEditText) view.findViewById(R.id.ce_other);
  2181. }
  2182. }
  2183. }
  2184. public class SelectmasterAdapterQty extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
  2185. private int checkedPosition = -1;
  2186. private boolean onBind;
  2187. private ArrayList<StorageRechargeAloneBean> mList = new ArrayList<>();
  2188. private SparseBooleanArray mSelectedPositions = new SparseBooleanArray();
  2189. private boolean mIsSelectable = false;
  2190. public SelectmasterAdapterQty(ArrayList<StorageRechargeAloneBean> list) {
  2191. if (list == null) {
  2192. throw new IllegalArgumentException("model Data must not be null");
  2193. }
  2194. mList = list;
  2195. }
  2196. //更新adpter的数据和选择状态
  2197. public void updateDataSet(ArrayList<StorageRechargeAloneBean> list) {
  2198. this.mList = list;
  2199. mSelectedPositions = new SparseBooleanArray();
  2200. // ab.setTitle("已选择" + 0 + "项");
  2201. }
  2202. @Override
  2203. public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
  2204. View itemView = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.recyclerview_item, viewGroup, false);
  2205. return new SelectmasterAdapterQty.ListItemViewHolder(itemView);
  2206. }
  2207. private Map<Integer, Boolean> map = new HashMap<>();
  2208. //绑定界面,设置监听
  2209. @SuppressLint("SetTextI18n")
  2210. @Override
  2211. public void onBindViewHolder(final RecyclerView.@NotNull ViewHolder holder, @SuppressLint("RecyclerView") int i) {
  2212. //设置条目状态
  2213. (( SelectmasterAdapterQty.ListItemViewHolder) holder).mainTitle.setTextSize(15);
  2214. (( SelectmasterAdapterQty.ListItemViewHolder) holder).mainTitle.setText(mList.get(i).getAlonedata());
  2215. ((SelectmasterAdapterQty.ListItemViewHolder) holder).ce_other.setVisibility(View.GONE);
  2216. // ((ListItemViewHolder) holder).checkBox.setChecked();
  2217. //checkBox的监听
  2218. ((SelectmasterAdapterQty.ListItemViewHolder) holder).checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
  2219. @Override
  2220. public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
  2221. if (isChecked == true) {
  2222. map.clear();
  2223. map.put(i, true);
  2224. checkedPosition = i;
  2225. } else {
  2226. map.remove(i);
  2227. if (map.size() == 0) {
  2228. checkedPosition = -1; //-1 代表一个都未选择
  2229. }
  2230. }
  2231. if (!onBind) {
  2232. notifyDataSetChanged();
  2233. }
  2234. }
  2235. });
  2236. onBind = true;
  2237. if (map != null && map.containsKey(i)) {
  2238. (( SelectmasterAdapterQty.ListItemViewHolder) holder).checkBox.setChecked(true);
  2239. } else {
  2240. (( SelectmasterAdapterQty.ListItemViewHolder) holder).checkBox.setChecked(false);
  2241. }
  2242. onBind = false;
  2243. (( SelectmasterAdapterQty.ListItemViewHolder) holder).ce_other.addTextChangedListener(new TextWatcher() {
  2244. @Override
  2245. public void beforeTextChanged(CharSequence s, int start, int count, int after) {
  2246. }
  2247. @Override
  2248. public void onTextChanged(CharSequence s, int start, int before, int count) {
  2249. mList.get(i).setInputce((( SelectmasterAdapterQty.ListItemViewHolder) holder).ce_other.getText().toString().trim());
  2250. }
  2251. @Override
  2252. public void afterTextChanged(Editable s) {
  2253. }
  2254. });
  2255. }
  2256. //获得选中条目的结果
  2257. public ArrayList<StorageRechargeAloneBean> getSelectedItem() {
  2258. ArrayList<StorageRechargeAloneBean> selectList = new ArrayList<>();
  2259. int checkedPosition = getCheckedPosition();
  2260. if (checkedPosition==-1){
  2261. selectList.clear();
  2262. }else {
  2263. selectList.add(mList.get(checkedPosition));
  2264. }
  2265. return selectList;
  2266. }
  2267. //设置给定位置条目的选择状态
  2268. private void setItemChecked(int position, boolean isChecked) {
  2269. mSelectedPositions.put(position, isChecked);
  2270. }
  2271. //根据位置判断条目是否选中
  2272. private boolean isItemChecked(int position) {
  2273. return mSelectedPositions.get(position);
  2274. }
  2275. //得到当前选中的位置
  2276. public int getCheckedPosition() {
  2277. return checkedPosition;
  2278. }
  2279. @Override
  2280. public int getItemCount() {
  2281. return mList == null ? 0 : mList.size();
  2282. }
  2283. //根据位置判断条目是否可选
  2284. private boolean isSelectable() {
  2285. return mIsSelectable;
  2286. }
  2287. //设置给定位置条目的可选与否的状态
  2288. private void setSelectable(boolean selectable) {
  2289. mIsSelectable = selectable;
  2290. }
  2291. public class ListItemViewHolder extends RecyclerView.ViewHolder{
  2292. //ViewHolder
  2293. CheckBox checkBox;
  2294. TextView mainTitle;
  2295. ClearableEditText ce_other;
  2296. ListItemViewHolder(View view) {
  2297. super(view);
  2298. this.mainTitle = (TextView) view.findViewById(R.id.text);
  2299. this.checkBox = (CheckBox) view.findViewById(R.id.select_checkbox);
  2300. this.ce_other = (ClearableEditText) view.findViewById(R.id.ce_other);
  2301. }
  2302. }
  2303. }
  2304. public class SelectAdapterQty extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
  2305. private int checkedPosition = -1;
  2306. private boolean onBind;
  2307. private ArrayList<StorageRechargeAloneBean> mList = new ArrayList<>();
  2308. private SparseBooleanArray mSelectedPositions = new SparseBooleanArray();
  2309. private boolean mIsSelectable = false;
  2310. public SelectAdapterQty(ArrayList<StorageRechargeAloneBean> list) {
  2311. if (list == null) {
  2312. throw new IllegalArgumentException("model Data must not be null");
  2313. }
  2314. mList = list;
  2315. }
  2316. //更新adpter的数据和选择状态
  2317. public void updateDataSet(ArrayList<StorageRechargeAloneBean> list) {
  2318. this.mList = list;
  2319. mSelectedPositions = new SparseBooleanArray();
  2320. // ab.setTitle("已选择" + 0 + "项");
  2321. }
  2322. @Override
  2323. public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
  2324. View itemView = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.recyclerview_item, viewGroup, false);
  2325. return new SelectAdapterQty.ListItemViewHolder(itemView);
  2326. }
  2327. private Map<Integer, Boolean> map = new HashMap<>();
  2328. //绑定界面,设置监听
  2329. @SuppressLint("SetTextI18n")
  2330. @Override
  2331. public void onBindViewHolder(final RecyclerView.@NotNull ViewHolder holder, @SuppressLint("RecyclerView") int i) {
  2332. //设置条目状态
  2333. (( SelectAdapterQty.ListItemViewHolder) holder).mainTitle.setTextSize(15);
  2334. (( SelectAdapterQty.ListItemViewHolder) holder).mainTitle.setText(mList.get(i).getAlonedata());
  2335. ((SelectAdapterQty.ListItemViewHolder) holder).ce_other.setVisibility(View.GONE);
  2336. // ((ListItemViewHolder) holder).checkBox.setChecked();
  2337. //checkBox的监听
  2338. ((SelectAdapterQty.ListItemViewHolder) holder).checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
  2339. @Override
  2340. public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
  2341. if (isChecked == true) {
  2342. map.clear();
  2343. map.put(i, true);
  2344. checkedPosition = i;
  2345. } else {
  2346. map.remove(i);
  2347. if (map.size() == 0) {
  2348. checkedPosition = -1; //-1 代表一个都未选择
  2349. }
  2350. }
  2351. if (!onBind) {
  2352. notifyDataSetChanged();
  2353. }
  2354. }
  2355. });
  2356. onBind = true;
  2357. if (map != null && map.containsKey(i)) {
  2358. (( SelectAdapterQty.ListItemViewHolder) holder).checkBox.setChecked(true);
  2359. } else {
  2360. (( SelectAdapterQty.ListItemViewHolder) holder).checkBox.setChecked(false);
  2361. }
  2362. onBind = false;
  2363. (( SelectAdapterQty.ListItemViewHolder) holder).ce_other.addTextChangedListener(new TextWatcher() {
  2364. @Override
  2365. public void beforeTextChanged(CharSequence s, int start, int count, int after) {
  2366. }
  2367. @Override
  2368. public void onTextChanged(CharSequence s, int start, int before, int count) {
  2369. mList.get(i).setInputce((( SelectAdapterQty.ListItemViewHolder) holder).ce_other.getText().toString().trim());
  2370. }
  2371. @Override
  2372. public void afterTextChanged(Editable s) {
  2373. }
  2374. });
  2375. }
  2376. //获得选中条目的结果
  2377. public ArrayList<StorageRechargeAloneBean> getSelectedItem() {
  2378. ArrayList<StorageRechargeAloneBean> selectList = new ArrayList<>();
  2379. int checkedPosition = getCheckedPosition();
  2380. if (checkedPosition==-1){
  2381. selectList.clear();
  2382. }else {
  2383. selectList.add(mList.get(checkedPosition));
  2384. }
  2385. return selectList;
  2386. }
  2387. //设置给定位置条目的选择状态
  2388. private void setItemChecked(int position, boolean isChecked) {
  2389. mSelectedPositions.put(position, isChecked);
  2390. }
  2391. //根据位置判断条目是否选中
  2392. private boolean isItemChecked(int position) {
  2393. return mSelectedPositions.get(position);
  2394. }
  2395. //得到当前选中的位置
  2396. public int getCheckedPosition() {
  2397. return checkedPosition;
  2398. }
  2399. @Override
  2400. public int getItemCount() {
  2401. return mList == null ? 0 : mList.size();
  2402. }
  2403. //根据位置判断条目是否可选
  2404. private boolean isSelectable() {
  2405. return mIsSelectable;
  2406. }
  2407. //设置给定位置条目的可选与否的状态
  2408. private void setSelectable(boolean selectable) {
  2409. mIsSelectable = selectable;
  2410. }
  2411. public class ListItemViewHolder extends RecyclerView.ViewHolder{
  2412. //ViewHolder
  2413. CheckBox checkBox;
  2414. TextView mainTitle;
  2415. ClearableEditText ce_other;
  2416. ListItemViewHolder(View view) {
  2417. super(view);
  2418. this.mainTitle = (TextView) view.findViewById(R.id.text);
  2419. this.checkBox = (CheckBox) view.findViewById(R.id.select_checkbox);
  2420. this.ce_other = (ClearableEditText) view.findViewById(R.id.ce_other);
  2421. }
  2422. }
  2423. }
  2424. public class SelectAdapterundesirable extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
  2425. private int checkedPosition = -1;
  2426. private boolean onBind;
  2427. private ArrayList<StorageRechargeAloneBean> mList = new ArrayList<>();
  2428. private SparseBooleanArray mSelectedPositions = new SparseBooleanArray();
  2429. private boolean mIsSelectable = false;
  2430. public SelectAdapterundesirable(ArrayList<StorageRechargeAloneBean> list) {
  2431. if (list == null) {
  2432. throw new IllegalArgumentException("model Data must not be null");
  2433. }
  2434. mList = list;
  2435. }
  2436. //更新adpter的数据和选择状态
  2437. public void updateDataSet(ArrayList<StorageRechargeAloneBean> list) {
  2438. this.mList = list;
  2439. mSelectedPositions = new SparseBooleanArray();
  2440. // ab.setTitle("已选择" + 0 + "项");
  2441. }
  2442. @Override
  2443. public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
  2444. View itemView = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.recyclerview_item_data, viewGroup, false);
  2445. return new SelectAdapterundesirable.ListItemViewHolder(itemView);
  2446. }
  2447. private Map<Integer, Boolean> map = new HashMap<>();
  2448. //绑定界面,设置监听
  2449. @SuppressLint("SetTextI18n")
  2450. @Override
  2451. public void onBindViewHolder(final RecyclerView.@NotNull ViewHolder holder, @SuppressLint("RecyclerView") int i) {
  2452. //设置条目状态
  2453. ((SelectAdapterundesirable.ListItemViewHolder) holder).mainTitle.setText(mList.get(i).getAlonedata());
  2454. ((SelectAdapterundesirable.ListItemViewHolder) holder).ce_qty.setVisibility(View.GONE);
  2455. if (mList.get(i).getAlonedata().equals("其他")){
  2456. ((SelectAdapterundesirable.ListItemViewHolder) holder).ce_other.setVisibility(View.VISIBLE);
  2457. ((SelectAdapterundesirable.ListItemViewHolder) holder).mainTitle.setVisibility(View.GONE);
  2458. }else {
  2459. ((SelectAdapterundesirable.ListItemViewHolder) holder).ce_other.setVisibility(View.GONE);
  2460. ((SelectAdapterundesirable.ListItemViewHolder) holder).mainTitle.setVisibility(View.VISIBLE);
  2461. }
  2462. // ((ListItemViewHolder) holder).checkBox.setChecked();
  2463. //checkBox的监听
  2464. ((SelectAdapterundesirable.ListItemViewHolder) holder).checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
  2465. @Override
  2466. public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
  2467. if (isChecked == true) {
  2468. map.clear();
  2469. map.put(i, true);
  2470. checkedPosition = i;
  2471. } else {
  2472. map.remove(i);
  2473. if (map.size() == 0) {
  2474. checkedPosition = -1; //-1 代表一个都未选择
  2475. }
  2476. }
  2477. if (!onBind) {
  2478. notifyDataSetChanged();
  2479. }
  2480. }
  2481. });
  2482. onBind = true;
  2483. if (map != null && map.containsKey(i)) {
  2484. ((SelectAdapterundesirable.ListItemViewHolder) holder).checkBox.setChecked(true);
  2485. } else {
  2486. ((SelectAdapterundesirable.ListItemViewHolder) holder).checkBox.setChecked(false);
  2487. }
  2488. onBind = false;
  2489. (( SelectAdapterundesirable.ListItemViewHolder) holder).ce_other.addTextChangedListener(new TextWatcher() {
  2490. @Override
  2491. public void beforeTextChanged(CharSequence s, int start, int count, int after) {
  2492. }
  2493. @Override
  2494. public void onTextChanged(CharSequence s, int start, int before, int count) {
  2495. mList.get(i).setInputce((( SelectAdapterundesirable.ListItemViewHolder) holder).ce_other.getText().toString().trim());
  2496. }
  2497. @Override
  2498. public void afterTextChanged(Editable s) {
  2499. }
  2500. });
  2501. (( SelectAdapterundesirable.ListItemViewHolder) holder).ce_qty.addTextChangedListener(new TextWatcher() {
  2502. @Override
  2503. public void beforeTextChanged(CharSequence s, int start, int count, int after) {
  2504. }
  2505. @Override
  2506. public void onTextChanged(CharSequence s, int start, int before, int count) {
  2507. mList.get(i).setQtyce((( SelectAdapterundesirable.ListItemViewHolder) holder).ce_qty.getText().toString().trim());
  2508. }
  2509. @Override
  2510. public void afterTextChanged(Editable s) {
  2511. }
  2512. });
  2513. }
  2514. //获得选中条目的结果
  2515. public ArrayList<StorageRechargeAloneBean> getSelectedItem() {
  2516. ArrayList<StorageRechargeAloneBean> selectList = new ArrayList<>();
  2517. int checkedPosition = getCheckedPosition();
  2518. if (checkedPosition==-1){
  2519. selectList.clear();
  2520. }else {
  2521. selectList.add(mList.get(checkedPosition));
  2522. }
  2523. return selectList;
  2524. }
  2525. //设置给定位置条目的选择状态
  2526. private void setItemChecked(int position, boolean isChecked) {
  2527. mSelectedPositions.put(position, isChecked);
  2528. }
  2529. //根据位置判断条目是否选中
  2530. private boolean isItemChecked(int position) {
  2531. return mSelectedPositions.get(position);
  2532. }
  2533. //得到当前选中的位置
  2534. public int getCheckedPosition() {
  2535. return checkedPosition;
  2536. }
  2537. @Override
  2538. public int getItemCount() {
  2539. return mList == null ? 0 : mList.size();
  2540. }
  2541. //根据位置判断条目是否可选
  2542. private boolean isSelectable() {
  2543. return mIsSelectable;
  2544. }
  2545. //设置给定位置条目的可选与否的状态
  2546. private void setSelectable(boolean selectable) {
  2547. mIsSelectable = selectable;
  2548. }
  2549. public class ListItemViewHolder extends RecyclerView.ViewHolder{
  2550. //ViewHolder
  2551. CheckBox checkBox;
  2552. TextView mainTitle;
  2553. ClearableEditText ce_other;
  2554. AutoCompleteTextView ce_qty;
  2555. ListItemViewHolder(View view) {
  2556. super(view);
  2557. this.mainTitle = (TextView) view.findViewById(R.id.text);
  2558. this.checkBox = (CheckBox) view.findViewById(R.id.select_checkbox);
  2559. this.ce_other = (ClearableEditText) view.findViewById(R.id.ce_other);
  2560. this.ce_qty = (AutoCompleteTextView) view.findViewById(R.id.ce_qty);
  2561. }
  2562. }
  2563. }
  2564. @Override
  2565. public boolean onKeyDown(int keyCode, KeyEvent event) {
  2566. return false;
  2567. }
  2568. @Override
  2569. public boolean onFragmentBackPressed() {
  2570. return false;
  2571. }
  2572. @Override
  2573. public void onClick(View v) {
  2574. }
  2575. @Override
  2576. public void onHiddenChanged(boolean hidden) {
  2577. super.onHiddenChanged(hidden);
  2578. if (hidden) {
  2579. ((FunctionActivity) getActivity()).setMoreBtnVisible(false);
  2580. } else {
  2581. FunctionActivity.setTitle(getString(R.string.title_storage_in));
  2582. ((FunctionActivity) getActivity()).setMoreBtnVisible(true);
  2583. }
  2584. }
  2585. @Override
  2586. public void onActivityResult(int requestCode, int resultCode, Intent data) {
  2587. if (resultCode != Activity.RESULT_OK) {
  2588. return;
  2589. }
  2590. if (requestCode == SCAN_BARCODE_CODESD && data != null) {
  2591. if (data.getExtras() != null) {
  2592. String result = data.getExtras().getString(com.uas.collection.camera.CodeUtils.RESULT_STRING);
  2593. if (mFocusId == R.id.tv_dc_emcode) {
  2594. tv_dc_emcode.setText(result);
  2595. tv_dc_emcode.setSelection(result.length());
  2596. getOrImage(result);
  2597. }
  2598. }
  2599. }
  2600. if (requestCode == SCAN_BARCODE_LINE && data != null) {
  2601. if (data.getExtras() != null) {
  2602. String result = data.getExtras().getString(com.uas.collection.camera.CodeUtils.RESULT_STRING);
  2603. if (mFocusId == R.id.tv_dc_line) {
  2604. tv_dc_line.setText(result);
  2605. tv_dc_line.setSelection(result.length());
  2606. }
  2607. }
  2608. }
  2609. }
  2610. @Override
  2611. public void onDestroy() {
  2612. super.onDestroy();
  2613. }
  2614. }