BreakdownRepairFragment.java 72 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778
  1. package com.uas.collection.fragment;
  2. import android.annotation.SuppressLint;
  3. import android.app.Activity;
  4. import android.content.Intent;
  5. import android.graphics.drawable.BitmapDrawable;
  6. import android.support.annotation.Nullable;
  7. import android.support.v7.widget.DividerItemDecoration;
  8. import android.support.v7.widget.LinearLayoutManager;
  9. import android.support.v7.widget.RecyclerView;
  10. import android.text.Editable;
  11. import android.text.TextWatcher;
  12. import android.util.Base64;
  13. import android.util.Log;
  14. import android.util.SparseBooleanArray;
  15. import android.view.Gravity;
  16. import android.view.KeyEvent;
  17. import android.view.LayoutInflater;
  18. import android.view.View;
  19. import android.view.ViewGroup;
  20. import android.view.Window;
  21. import android.view.inputmethod.EditorInfo;
  22. import android.widget.AutoCompleteTextView;
  23. import android.widget.CheckBox;
  24. import android.widget.CompoundButton;
  25. import android.widget.ImageView;
  26. import android.widget.LinearLayout;
  27. import android.widget.PopupWindow;
  28. import android.widget.TextView;
  29. import com.alibaba.fastjson.JSON;
  30. import com.alibaba.fastjson.JSONArray;
  31. import com.alibaba.fastjson.JSONObject;
  32. import com.android.volley.Request;
  33. import com.android.volley.toolbox.StringRequest;
  34. import com.bumptech.glide.Glide;
  35. import com.chad.library.adapter.base.BaseQuickAdapter;
  36. import com.chad.library.adapter.base.BaseViewHolder;
  37. import com.uas.collection.R;
  38. import com.uas.collection.activity.FunctionActivity;
  39. import com.uas.collection.bean.LinecodeBean;
  40. import com.uas.collection.bean.ResourcesBean;
  41. import com.uas.collection.bean.StorageRechargeAloneBean;
  42. import com.uas.collection.camera.CaptureActivity;
  43. import com.uas.collection.global.GloableParams;
  44. import com.uas.collection.tools.SharedPreUtil;
  45. import com.uas.collection.util.CameraUtil;
  46. import com.uas.collection.util.CommonUtil;
  47. import com.uas.collection.util.Constants;
  48. import com.uas.collection.util.FastjsonUtil;
  49. import com.uas.collection.util.HttpCallback;
  50. import com.uas.collection.util.HttpParams;
  51. import com.uas.collection.util.LogUtil;
  52. import com.uas.collection.util.MyArrayAdapter;
  53. import com.uas.collection.util.MyLayoutManager;
  54. import com.uas.collection.util.StringUtil;
  55. import com.uas.collection.util.VollyRequest;
  56. import com.uas.collection.view.ClearableEditText;
  57. import org.jetbrains.annotations.NotNull;
  58. import org.json.JSONException;
  59. import java.util.ArrayList;
  60. import java.util.HashMap;
  61. import java.util.List;
  62. import java.util.Map;
  63. import razerdp.basepopup.BasePopupWindow;
  64. /**
  65. * Created by cjh-sail on 2023-005-28
  66. * 性能维修
  67. */
  68. public class BreakdownRepairFragment extends BaseFragment{
  69. private ArrayList<StorageRechargeAloneBean> mFeededListone;
  70. private ArrayList<StorageRechargeAloneBean> mFeededListthree;
  71. private ArrayList<StorageRechargeAloneBean> mFeededListtwo;
  72. private RecyclerView rv_one,rv_two,rv_three;
  73. private SelectAdapterone myAdapterone;
  74. private SelectAdapterthree myAdapterthree;
  75. private SelectAdaptertwo myAdaptertwo;
  76. private TextView tv_save;
  77. private AutoCompleteTextView ce_work_code;
  78. private AutoCompleteTextView at_station;
  79. private MyArrayAdapter<String> mAutoStringAdapter;
  80. private ImageView iv_work_code;
  81. private ImageView iv_station;
  82. private TextView tv_length;
  83. private ClearableEditText ce_length;
  84. private ClearableEditText ce_product_bar_code;
  85. private ImageView iv_popuwindow;
  86. private IpAndResourcesPortAdapter ipAndResourcesPortAdapter;
  87. private String ma_code;
  88. private String sc_code;
  89. private ImageView iv_resources;
  90. private ClearableEditText tv_dc_emcode;
  91. private StringRequest mStringRequest;
  92. private ImageView iv_personnel_data;
  93. private int mFocusId;
  94. private static final int SCAN_BARCODE_CODESD = 925;
  95. private ImageView iv_dc_emcode;
  96. private String sc_codecollethree;
  97. private String ma_id;
  98. private TextView tv_gonema_code;
  99. @Override
  100. protected int getLayout() {
  101. return R.layout.fragment_breakdownrepair;
  102. }
  103. @Override
  104. protected void initViews() {
  105. FunctionActivity.setTitle(getString(R.string.title_storage_breakdown));
  106. ce_work_code = root.findViewById(R.id.ce_work_code);
  107. ce_work_code.setThreshold(1);
  108. ce_work_code.requestFocus();
  109. at_station = root.findViewById(R.id.at_station);
  110. at_station.setThreshold(1);
  111. rv_one = root.findViewById(R.id.rv_one);
  112. rv_two = root.findViewById(R.id.rv_two);
  113. rv_three = root.findViewById(R.id.rv_three);
  114. tv_save = root.findViewById(R.id.tv_save);
  115. iv_work_code = root.findViewById(R.id.iv_work_code);
  116. iv_station = root.findViewById(R.id.iv_station);
  117. tv_length = root.findViewById(R.id.tv_length);
  118. ce_length = root.findViewById(R.id.ce_length);
  119. ce_product_bar_code = root.findViewById(R.id.ce_product_bar_code);
  120. iv_popuwindow = root.findViewById(R.id.iv_popuwindow);
  121. iv_resources = root.findViewById(R.id.iv_resources);
  122. tv_dc_emcode = root.findViewById(R.id.tv_dc_emcode);
  123. iv_personnel_data = root.findViewById(R.id.iv_personnel_data);
  124. iv_dc_emcode = root.findViewById(R.id.iv_dc_emcode);
  125. tv_gonema_code = root.findViewById(R.id.tv_gonema_code);
  126. // ce_length.setEnabled(false);
  127. // ce_length.setFocusable(false);
  128. // ce_length.setKeyListener(null);//重点
  129. }
  130. @Override
  131. protected void initEvents() {
  132. }
  133. @Override
  134. protected void initDatas() {
  135. recycleDataone();
  136. recycleDatatwo();
  137. recycleDatathree();
  138. /**--------------------------------工单号----------------------------**/
  139. ce_work_code.setOnEditorActionListener(new TextView.OnEditorActionListener() {
  140. @Override
  141. public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
  142. if (actionId == EditorInfo.IME_ACTION_DONE
  143. || actionId == EditorInfo.IME_ACTION_SEND
  144. || (event != null && event.getAction() == KeyEvent.ACTION_DOWN && event.getKeyCode() == KeyEvent.KEYCODE_ENTER)) {
  145. String va_code = ce_work_code.getText().toString().trim();
  146. getfuzzySearchData(va_code,"");
  147. return true;
  148. }
  149. return false;
  150. }
  151. });
  152. ce_work_code.addTextChangedListener(new TextWatcher() {
  153. @Override
  154. public void beforeTextChanged(CharSequence s, int start, int count, int after) {
  155. }
  156. @Override
  157. public void onTextChanged(CharSequence s, int start, int before, int count) {
  158. if (s.length() >=2) {
  159. getfuzzySearchData(ce_work_code.getText().toString().trim(),"");
  160. }
  161. }
  162. @Override
  163. public void afterTextChanged(Editable s) {
  164. if (s == null || s.length() == 0) {
  165. iv_work_code.setVisibility(View.GONE);
  166. } else {
  167. iv_work_code.setVisibility(View.VISIBLE);
  168. }
  169. }
  170. });
  171. iv_work_code.setOnClickListener(new View.OnClickListener() {
  172. @Override
  173. public void onClick(View v) {
  174. ce_work_code.setText("");
  175. ce_work_code.requestFocus();
  176. }
  177. });
  178. iv_popuwindow.setOnClickListener(new View.OnClickListener() {
  179. @Override
  180. public void onClick(View v) {
  181. initlinecodePopupWindow();
  182. }
  183. });
  184. /**--------------------------------岗位资源----------------------------**/
  185. at_station.setOnEditorActionListener(new TextView.OnEditorActionListener() {
  186. @Override
  187. public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
  188. if (actionId == EditorInfo.IME_ACTION_DONE
  189. || actionId == EditorInfo.IME_ACTION_SEND
  190. || (event != null && event.getAction() == KeyEvent.ACTION_DOWN && event.getKeyCode() == KeyEvent.KEYCODE_ENTER)) {
  191. String va_code = at_station.getText().toString().trim();
  192. getfuzzySearchSourceData(va_code,"");
  193. return true;
  194. }
  195. return false;
  196. }
  197. });
  198. at_station.addTextChangedListener(new TextWatcher() {
  199. @Override
  200. public void beforeTextChanged(CharSequence s, int start, int count, int after) {
  201. }
  202. @Override
  203. public void onTextChanged(CharSequence s, int start, int before, int count) {
  204. if (s.length() >=2) {
  205. getfuzzySearchSourceData(at_station.getText().toString().trim(),"");
  206. }
  207. }
  208. @Override
  209. public void afterTextChanged(Editable s) {
  210. if (s == null || s.length() == 0) {
  211. iv_station.setVisibility(View.GONE);
  212. } else {
  213. iv_station.setVisibility(View.VISIBLE);
  214. }
  215. }
  216. });
  217. // ce_product_bar_code.addTextChangedListener(new TextWatcher() {
  218. // private CharSequence temp;
  219. // @Override
  220. // public void beforeTextChanged(CharSequence s, int start, int count, int after) {
  221. //
  222. // }
  223. //
  224. // @Override
  225. // public void onTextChanged(CharSequence s, int start, int before, int count) {
  226. // temp = s;
  227. // }
  228. //
  229. // @Override
  230. // public void afterTextChanged(Editable s) {
  231. // int selectionStart = ce_product_bar_code.getSelectionStart();
  232. // int selectionEnd = ce_product_bar_code.getSelectionEnd();
  233. // ce_product_bar_code.getSelectionStart();
  234. // Log.e("gongbiao1", "" + selectionStart);
  235. // if (temp.length() > Integer.parseInt(ce_length.getText().toString().trim())) {
  236. // s.delete(selectionStart - 1, selectionEnd);
  237. // ce_product_bar_code.setText(s);
  238. // }
  239. // }
  240. // });
  241. ce_length.addTextChangedListener(new TextWatcher() {
  242. @Override
  243. public void beforeTextChanged(CharSequence s, int start, int count, int after) {
  244. }
  245. @Override
  246. public void onTextChanged(CharSequence s, int start, int before, int count) {
  247. tv_length.setText(ce_length.getText().toString().trim());
  248. }
  249. @Override
  250. public void afterTextChanged(Editable s) {
  251. }
  252. });
  253. iv_station.setOnClickListener(new View.OnClickListener() {
  254. @Override
  255. public void onClick(View v) {
  256. at_station.setText("");
  257. at_station.requestFocus();
  258. }
  259. });
  260. iv_resources.setOnClickListener(new View.OnClickListener() {
  261. @Override
  262. public void onClick(View v) {
  263. initresourcesPopupWindow();
  264. }
  265. });
  266. /**----------------------------条码号------------------------------------**/
  267. ce_product_bar_code.setOnEditorActionListener(new TextView.OnEditorActionListener() {
  268. @Override
  269. public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
  270. if (actionId == EditorInfo.IME_ACTION_DONE
  271. || actionId == EditorInfo.IME_ACTION_SEND
  272. || (event != null && event.getAction() == KeyEvent.ACTION_DOWN && event.getKeyCode() == KeyEvent.KEYCODE_ENTER)) {
  273. String va_code = ce_product_bar_code.getText().toString().trim();
  274. getNewSNData(va_code);
  275. return true;
  276. }
  277. return false;
  278. }
  279. });
  280. /**----------------------------人员编号------------------------------------**/
  281. tv_dc_emcode.setOnEditorActionListener(new TextView.OnEditorActionListener() {
  282. @Override
  283. public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
  284. if (actionId == EditorInfo.IME_ACTION_DONE
  285. || actionId == EditorInfo.IME_ACTION_SEND
  286. || (event != null && event.getAction() == KeyEvent.ACTION_DOWN && event.getKeyCode() == KeyEvent.KEYCODE_ENTER)) {
  287. String dc_emcode = tv_dc_emcode.getText().toString().trim();
  288. getOrImage(dc_emcode);
  289. return true;
  290. }
  291. return false;
  292. }
  293. });
  294. iv_dc_emcode.setOnClickListener(new View.OnClickListener() {
  295. @Override
  296. public void onClick(View v) {
  297. tv_dc_emcode.requestFocus();
  298. if (CameraUtil.hasCamera()) {
  299. if (root.findFocus() != null) {
  300. mFocusId = root.findFocus().getId();
  301. Intent intent = new Intent();
  302. intent.setClass(mActivity, CaptureActivity.class);
  303. startActivityForResult(intent, SCAN_BARCODE_CODESD);
  304. SharedPreUtil.saveString(mActivity, Constants.STORAGEERECHADD, "NO");
  305. } else {
  306. CommonUtil.toastNoRepeat(mActivity, "请选择您要操作的输入框");
  307. }
  308. } else {
  309. CommonUtil.toastNoRepeat(mActivity, getString(R.string.no_camera_detected));
  310. }
  311. }
  312. });
  313. //保存
  314. tv_save.setOnClickListener(new View.OnClickListener() {
  315. @Override
  316. public void onClick(View v) {
  317. getNewSaveData();
  318. }
  319. });
  320. sc_codecollethree = SharedPreUtil.getString(mActivity, "sc_codecollethree", null);
  321. at_station.setText(sc_codecollethree);
  322. }
  323. public void getOrImage(String em_code){
  324. progressDialog.show();
  325. VollyRequest.getInstance().stringRequest(mStringRequest,
  326. new HttpParams.Builder()
  327. .url(GloableParams.ASTATIONTHE_RESOURCEFILE)
  328. .method(Request.Method.GET)
  329. .addParam("em_code",em_code)
  330. .tag("Tag" + "getSourceByEmp")
  331. .flag(0)
  332. .build(), new HttpCallback() {
  333. @Override
  334. public void onSuccess(int flag, Object o) throws Exception {
  335. progressDialog.dismiss();
  336. Boolean isSuccess = FastjsonUtil.getBoolean(o.toString(),"success");
  337. if (isSuccess){
  338. JSONObject data = FastjsonUtil.getJSONObject(o.toString(), "data");
  339. JSONArray url = FastjsonUtil.getJSONArray(data, "url");
  340. if (url == null || url.size() == 0){
  341. CommonUtil.toastNoRepeat(mActivity,"未搜索到匹配数据");
  342. }
  343. for(int i=0;i<url.size();i++){
  344. JSONObject data2 = (JSONObject) url.get(i);
  345. if (!StringUtil.isEmpty(data2.getString("path"))){
  346. String path = data2.getString("path");
  347. String str2 = new String(Base64.decode(path.getBytes(),Base64.DEFAULT));
  348. Glide.with(mActivity).load(str2).into(iv_personnel_data);
  349. }
  350. }
  351. }
  352. }
  353. @Override
  354. public void onFail(int flag, String failStr) throws Exception {
  355. progressDialog.dismiss();
  356. CommonUtil.toastNoRepeat(mActivity, failStr);
  357. }
  358. });
  359. }
  360. //工单号
  361. public void getfuzzySearchData(String inoutNo,String sone){
  362. VollyRequest.getInstance().stringRequest(new HttpParams.Builder()
  363. .url(GloableParams.ADDRESS_SMT_FUZZY_SEARCH)
  364. .method(Request.Method.GET)
  365. .addParam("inoutNo", inoutNo)
  366. .build(), new HttpCallback() {
  367. @Override
  368. public void onSuccess(int flag, Object o) throws Exception {
  369. progressDialog.dismiss();
  370. String s = o.toString();
  371. List<String> mAutoStrings = new ArrayList<String>();
  372. try {
  373. mAutoStrings.clear();
  374. linecodeBeanList.clear();
  375. mAutoStringAdapter = new MyArrayAdapter<String>(mActivity, android.R.layout.simple_dropdown_item_1line, mAutoStrings);
  376. if (ce_work_code != null) {
  377. ce_work_code.setAdapter(mAutoStringAdapter);
  378. }
  379. org.json.JSONObject resultObject = new org.json.JSONObject(s);
  380. org.json.JSONArray dataArray = resultObject.optJSONArray("data");
  381. JSONArray dataArrayone = FastjsonUtil.getJSONArray(o.toString(),"data");
  382. if (sone.equals("弹框")){
  383. if (dataArrayone == null|| dataArrayone.size() == 0){
  384. CommonUtil.toastNoRepeat(mActivity,"未搜索到匹配数据");
  385. }
  386. for(Object index:dataArrayone){
  387. JSONObject data = (JSONObject) index;
  388. LinecodeBean bean = new LinecodeBean();
  389. bean.setMA_CODE(data.getString("MA_CODE"));
  390. bean.setPR_CODE(data.getString("PR_CODE"));
  391. bean.setPR_DETAIL(data.getString("PR_DETAIL"));
  392. bean.setMA_ID(data.getString("MA_ID"));
  393. linecodeBeanList.add(bean);
  394. }
  395. ipAndlinecodePortAdapter.setmList(linecodeBeanList);
  396. ipAndlinecodePortAdapter.notifyDataSetChanged();
  397. }
  398. // else {
  399. // if (dataArray != null) {
  400. // for (int i = 0; i < dataArray.length(); i++) {
  401. // org.json.JSONObject dataObject = dataArray.optJSONObject(i);
  402. // if (dataObject != null) {
  403. // String pi_inoutno = JsonUtils.optStringNotNull(dataObject, "MA_CODE");
  404. // String pr_code = JsonUtils.optStringNotNull(dataObject, "PR_CODE");
  405. // String pr_detail = JsonUtils.optStringNotNull(dataObject, "PR_DETAIL");
  406. // if (!TextUtils.isEmpty(pi_inoutno))
  407. // mAutoStringAdapter.add(pi_inoutno);
  408. // tv_pr_code.setText("产品编号 "+pr_code);
  409. // tv_pr_detail.setText("产品名称 "+pr_detail);
  410. // }
  411. // }
  412. // }
  413. // }
  414. } catch (JSONException e) {
  415. e.printStackTrace();
  416. }
  417. }
  418. @Override
  419. public void onFail(int flag, String failStr) throws Exception {
  420. progressDialog.dismiss();
  421. CommonUtil.toastNoRepeat(mActivity, failStr);
  422. }
  423. });
  424. }
  425. //岗位资源
  426. public void getfuzzySearchSourceData(String sourcecode,String sourstring){
  427. if (sourstring.equals("不良")){
  428. if (sourcecode.isEmpty()){
  429. CommonUtil.toastNoRepeat(mActivity,"请先输入岗位资源");
  430. return;
  431. }
  432. }
  433. VollyRequest.getInstance().stringRequest(new HttpParams.Builder()
  434. .url(GloableParams.ASTATIONTHE_SELECT_FUZZYSEARCHSOURCE)
  435. .method(Request.Method.GET)
  436. .addParam("sourcecode", sourcecode)
  437. .build(), new HttpCallback() {
  438. @Override
  439. public void onSuccess(int flag, Object o) throws Exception {
  440. progressDialog.dismiss();
  441. String s = o.toString();
  442. List<String> mAutoStrings = new ArrayList<String>();
  443. try {
  444. mAutoStrings.clear();
  445. resourcesBeanList.clear();
  446. MyArrayAdapter<String> mAutoStringAdapte = new MyArrayAdapter<String>(mActivity, android.R.layout.simple_dropdown_item_1line, mAutoStrings);
  447. if (at_station != null) {
  448. at_station.setAdapter(mAutoStringAdapte);
  449. }
  450. org.json.JSONObject resultObject = new org.json.JSONObject(s);
  451. org.json.JSONArray dataArray = resultObject.optJSONArray("data");
  452. JSONArray dataArrayone = FastjsonUtil.getJSONArray(o.toString(),"data");
  453. if (sourstring.equals("弹框")||sourstring.equals("不良")){
  454. if (dataArrayone == null|| dataArrayone.size() == 0){
  455. CommonUtil.toastNoRepeat(mActivity,"未搜索到匹配数据");
  456. }
  457. for(Object index:dataArrayone){
  458. JSONObject data = (JSONObject) index;
  459. ResourcesBean bean = new ResourcesBean();
  460. bean.setSC_CODE(data.getString("SC_CODE"));
  461. bean.setST_REMARK(data.getString("ST_REMARK"));
  462. resourcesBeanList.add(bean);
  463. }
  464. ipAndResourcesPortAdapter.setmList(resourcesBeanList);
  465. ipAndResourcesPortAdapter.notifyDataSetChanged();
  466. }
  467. // else {
  468. // if (dataArray != null) {
  469. // for (int i = 0; i < dataArray.length(); i++) {
  470. // org.json.JSONObject dataObject = dataArray.optJSONObject(i);
  471. // if (dataObject != null) {
  472. // String pi_inoutno = JsonUtils.optStringNotNull(dataObject, "SC_CODE");
  473. // String st_remark = JsonUtils.optStringNotNull(dataObject, "ST_REMARK");
  474. // if (!TextUtils.isEmpty(pi_inoutno))
  475. // mAutoStringAdapte.add(pi_inoutno);
  476. // }
  477. // }
  478. // }
  479. // }
  480. } catch (JSONException e) {
  481. e.printStackTrace();
  482. }
  483. }
  484. @Override
  485. public void onFail(int flag, String failStr) throws Exception {
  486. progressDialog.dismiss();
  487. CommonUtil.toastNoRepeat(mActivity, failStr);
  488. }
  489. });
  490. }
  491. public void getNewSNData(String va_code){
  492. if (ce_length.getText().toString().trim().isEmpty()){
  493. ce_length.setText("0");
  494. }
  495. if (ce_product_bar_code.getText().toString().trim().length() != Integer.parseInt(ce_length.getText().toString().trim())) {
  496. CommonUtil.toastNoRepeat(mActivity, "产品长度和产品条码长度不符");
  497. return;
  498. }
  499. JSONArray jsonArray = new JSONArray();
  500. JSONObject object_1 = new JSONObject();
  501. String alonedataone = null;
  502. String alonedatatwo = null;
  503. String alonedatathree = null;
  504. String Qtycetwo = null;
  505. String ce_work_codetrim = tv_gonema_code.getText().toString().trim();
  506. String at_stationtrim = at_station.getText().toString().trim();
  507. ArrayList<StorageRechargeAloneBean> selectedItemone = myAdapterone.getSelectedItem();
  508. if (selectedItemone.size()==0){
  509. CommonUtil.toastNoRepeat(mActivity, "请选择不良现象");
  510. object_1.put("SR_BADNAMEREMARK",null);//不良现象
  511. }else {
  512. for (int i=0;i<selectedItemone.size();i++){
  513. if (selectedItemone.get(i).getAlonedata().equals("其他")){
  514. alonedataone=selectedItemone.get(i).getInputce();
  515. if (StringUtil.isEmpty(alonedataone)){
  516. object_1.put("SR_BADNAMEREMARK",null);//不良现象
  517. }}else {
  518. alonedataone = selectedItemone.get(i).getAlonedata();
  519. object_1.put("SR_BADNAME",alonedataone);
  520. }
  521. }
  522. }
  523. ArrayList<StorageRechargeAloneBean> selectedItemtwo = myAdaptertwo.getSelectedItem();
  524. if (selectedItemone.size()==0){
  525. CommonUtil.toastNoRepeat(mActivity, "请选择不良现象");
  526. object_1.put("SR_BADLOCATIONREMARK",null);//不良位号
  527. }else {
  528. if (selectedItemone.get(0).getAlonedata().equals("其他")){
  529. alonedatatwo=selectedItemtwo.get(0).getInputce();
  530. if (StringUtil.isEmpty(alonedatatwo)){
  531. object_1.put("SR_BADLOCATIONREMARK", null);//不良位号
  532. }
  533. }else {
  534. if (StringUtil.isEmpty(selectedItemtwo.get(0).getQtyce())){
  535. Qtycetwo="0";
  536. }else {
  537. Qtycetwo=selectedItemtwo.get(0).getQtyce();
  538. }
  539. alonedatatwo = selectedItemtwo.get(0).getAlonedata()+""+Qtycetwo;
  540. object_1.put("SR_LOCATION", alonedatatwo);
  541. }
  542. }
  543. ArrayList<StorageRechargeAloneBean> selectedItemthree = myAdapterthree.getSelectedItem();
  544. if (selectedItemone.size()==0){
  545. CommonUtil.toastNoRepeat(mActivity, "请选择不良现象");
  546. object_1.put("SR_BADREASONREMARK",null);//原因
  547. }else {
  548. if (selectedItemone.get(0).getAlonedata().equals("其他")){
  549. alonedatathree=selectedItemthree.get(0).getInputce();
  550. if (StringUtil.isEmpty(alonedatathree)){
  551. object_1.put("SR_BADREASONREMARK", null);//原因
  552. }
  553. }else {
  554. alonedatathree = selectedItemthree.get(0).getAlonedata();
  555. object_1.put("SR_REASON", alonedatathree);
  556. }
  557. }
  558. object_1.put("SR_ID", "");
  559. object_1.put("SR_MAKECODE", ce_work_codetrim);//工单号
  560. object_1.put("SR_SOURCECODE", at_stationtrim);//资源
  561. object_1.put("SR_PASSQTY", "0");//通过数量
  562. object_1.put("SR_NGQTY", "1");//NG数量
  563. object_1.put("SR_TYPE", "性能维修");//种类(数据采集/、外观维修/性能维修)
  564. object_1.put("SR_SN", va_code);//SN号
  565. object_1.put("SR_REMARK", "");//备注/其他
  566. object_1.put("SR_INMAN", "");//录入人
  567. object_1.put("SR_INDATE", "");//录入时间
  568. jsonArray.add(object_1);
  569. progressDialog.show();
  570. VollyRequest.getInstance().stringRequest(new HttpParams.Builder()
  571. .url(GloableParams.ASTATIONTHE_SELECT_COLLECTDATA)
  572. .method(Request.Method.POST)
  573. .addParam("datainto", jsonArray.toJSONString())
  574. .build(), new HttpCallback() {
  575. @Override
  576. public void onSuccess(int flag, Object o) throws Exception {
  577. progressDialog.dismiss();
  578. CommonUtil.toastYESRepeat(mActivity, "条码号请求成功");
  579. int length = ce_product_bar_code.getText().toString().trim().length();
  580. ce_length.setText(length+"");
  581. }
  582. @Override
  583. public void onFail(int flag, String failStr) throws Exception {
  584. progressDialog.dismiss();
  585. CommonUtil.toastNoRepeat(mActivity, failStr);
  586. }
  587. });
  588. }
  589. public void getNewSaveData(){
  590. if (ce_length.getText().toString().trim().isEmpty()){
  591. ce_length.setText("0");
  592. }
  593. if (ce_product_bar_code.getText().toString().trim().length() != Integer.parseInt(ce_length.getText().toString().trim())) {
  594. CommonUtil.toastNoRepeat(mActivity, "产品长度和产品条码长度不符");
  595. return;
  596. }
  597. JSONArray jsonArray = new JSONArray();
  598. JSONObject object_1 = new JSONObject();
  599. String alonedataone = null;
  600. String alonedatatwo = null;
  601. String alonedatathree = null;
  602. String Qtycetwo = null;
  603. String ce_work_codetrim = tv_gonema_code.getText().toString().trim();
  604. String at_stationtrim = at_station.getText().toString().trim();
  605. ArrayList<StorageRechargeAloneBean> selectedItemone = myAdapterone.getSelectedItem();
  606. if (selectedItemone.size()==0){
  607. object_1.put("SR_BADNAMEREMARK",null);//不良现象
  608. }else {
  609. for (int i=0;i<selectedItemone.size();i++){
  610. if (selectedItemone.get(i).getAlonedata().equals("其他")){
  611. alonedataone=selectedItemone.get(i).getInputce();
  612. if (StringUtil.isEmpty(alonedataone)){
  613. object_1.put("SR_BADNAMEREMARK",null);//不良现象
  614. }}else {
  615. alonedataone = selectedItemone.get(i).getAlonedata();
  616. object_1.put("SR_BADNAME",alonedataone);
  617. }
  618. }
  619. }
  620. ArrayList<StorageRechargeAloneBean> selectedItemtwo = myAdaptertwo.getSelectedItem();
  621. if (selectedItemtwo.size() == 0){
  622. object_1.put("SR_BADLOCATIONREMARK", null);//不良位号
  623. }else {
  624. if (selectedItemone.get(0).getAlonedata().equals("其他")){
  625. alonedatatwo=selectedItemtwo.get(0).getInputce();
  626. if (StringUtil.isEmpty(alonedatatwo)){
  627. object_1.put("SR_BADLOCATIONREMARK", null);//不良位号
  628. }
  629. }else {
  630. if (StringUtil.isEmpty(selectedItemtwo.get(0).getQtyce())){
  631. Qtycetwo="0";
  632. }else {
  633. Qtycetwo=selectedItemtwo.get(0).getQtyce();
  634. }
  635. alonedatatwo = selectedItemtwo.get(0).getAlonedata()+""+Qtycetwo;
  636. object_1.put("SR_LOCATION", alonedatatwo);
  637. }
  638. }
  639. ArrayList<StorageRechargeAloneBean> selectedItemthree = myAdapterthree.getSelectedItem();
  640. if (selectedItemthree.size()==0){
  641. object_1.put("SR_BADREASONREMARK", null);//原因
  642. }else {
  643. if (selectedItemone.get(0).getAlonedata().equals("其他")){
  644. alonedatathree=selectedItemthree.get(0).getInputce();
  645. if (StringUtil.isEmpty(alonedatathree)){
  646. object_1.put("SR_BADREASONREMARK", null);//原因
  647. }
  648. }else {
  649. alonedatathree = selectedItemthree.get(0).getAlonedata();
  650. object_1.put("SR_REASON", alonedatathree);
  651. }
  652. }
  653. object_1.put("SR_ID", "");
  654. object_1.put("SR_MAKECODE", ce_work_codetrim);//工单号
  655. object_1.put("SR_SOURCECODE", at_stationtrim);//资源
  656. object_1.put("SR_PASSQTY", "0");//通过数量
  657. object_1.put("SR_NGQTY", "1");//NG数量
  658. object_1.put("SR_TYPE", "性能维修");//种类(数据采集/、外观维修/性能维修)
  659. object_1.put("SR_SN", ce_product_bar_code.getText().toString().trim());//SN号
  660. object_1.put("SR_REMARK", "");//备注/其他
  661. object_1.put("SR_INMAN", "");//录入人
  662. object_1.put("SR_INDATE", "");//录入时间
  663. jsonArray.add(object_1);
  664. Log.e("jsonArray=====",jsonArray.toJSONString());
  665. progressDialog.show();
  666. VollyRequest.getInstance().stringRequest(new HttpParams.Builder()
  667. .url(GloableParams.ASTATIONTHE_SELECT_COLLECTDATA)
  668. .method(Request.Method.POST)
  669. .addParam("datainto", jsonArray.toJSONString())
  670. .build(), new HttpCallback() {
  671. @Override
  672. public void onSuccess(int flag, Object o) throws Exception {
  673. progressDialog.dismiss();
  674. CommonUtil.toastYESRepeat(mActivity, "保存成功");
  675. }
  676. @Override
  677. public void onFail(int flag, String failStr) throws Exception {
  678. progressDialog.dismiss();
  679. CommonUtil.toastNoRepeat(mActivity, failStr);
  680. }
  681. });
  682. }
  683. public void recycleDataone(){
  684. mFeededListone = new ArrayList<>();
  685. myAdapterone = new SelectAdapterone(mFeededListone);
  686. LinearLayoutManager layoutmanager = new LinearLayoutManager(mActivity);
  687. MyLayoutManager layout = new MyLayoutManager();
  688. layout.setAutoMeasureEnabled(true);//防止recyclerview高度为wrap时测量item高度0(一定要加这个属性,否则显示不出来)
  689. layoutmanager.setOrientation(LinearLayoutManager.HORIZONTAL);//列表横向显示
  690. rv_one.setLayoutManager(layout);
  691. setAdapterone(mFeededListone);
  692. rv_one.setAdapter(myAdapterone);
  693. List<String> list=new ArrayList<>();
  694. list.add("无输出");
  695. list.add("电压高");
  696. list.add("电压低");
  697. list.add("电流高");
  698. list.add("电流低");
  699. list.add("波纹大");
  700. list.add("波纹小");
  701. list.add("起机慢");
  702. list.add("AC短路");
  703. list.add("DC短路");
  704. list.add("OCP不保护");
  705. list.add("电压跳变");
  706. list.add("拐点不良");
  707. list.add("耐压不良");
  708. list.add("绝缘电阻");
  709. list.add("误测");
  710. list.add("其他");
  711. JSONObject jsonObject = new JSONObject();
  712. JSONArray jsonArray = new JSONArray();
  713. JSONObject object_1 = new JSONObject();
  714. for (int i=0;i<list.size();i++){
  715. StorageRechargeAloneBean bean=new StorageRechargeAloneBean(list.get(i));
  716. object_1.put("alone", list.get(i));
  717. jsonArray.add(bean);
  718. }
  719. jsonObject.put("formStore", jsonArray);
  720. JSONArray dataArray = FastjsonUtil.getJSONArray(jsonObject.toString(), "formStore");
  721. handleFeededDataone(dataArray);
  722. }
  723. private void handleFeededDataone(JSONArray dataArray) {
  724. StorageRechargeAloneBean bean;
  725. mFeededListone.clear();
  726. for (Object index : dataArray) {
  727. JSONObject data = (JSONObject) index;
  728. bean= new StorageRechargeAloneBean(
  729. data.getString("alonedata"));
  730. mFeededListone.add(bean);
  731. }
  732. setAdapterone(mFeededListone);
  733. }
  734. private void setAdapterone(ArrayList<StorageRechargeAloneBean> mList) {
  735. LogUtil.i("mList", JSON.toJSONString(mList));
  736. myAdapterone = new SelectAdapterone(mList);
  737. rv_one.setAdapter(myAdapterone);
  738. }
  739. public void recycleDatatwo(){
  740. mFeededListtwo = new ArrayList<>();
  741. myAdaptertwo = new SelectAdaptertwo(mFeededListtwo);
  742. LinearLayoutManager layoutmanager = new LinearLayoutManager(mActivity);
  743. MyLayoutManager layout = new MyLayoutManager();
  744. layout.setAutoMeasureEnabled(true);//防止recyclerview高度为wrap时测量item高度0(一定要加这个属性,否则显示不出来)
  745. layoutmanager.setOrientation(LinearLayoutManager.HORIZONTAL);//列表横向显示
  746. rv_two.setLayoutManager(layout);
  747. setAdaptertwo(mFeededListtwo);
  748. rv_two.setAdapter(myAdaptertwo);
  749. List<String> list=new ArrayList<>();
  750. list.add("C");
  751. list.add("CY");
  752. list.add("D");
  753. list.add("DB");
  754. list.add("T");
  755. list.add("L");
  756. list.add("U");
  757. list.add("F");
  758. list.add("R");
  759. list.add("LF");
  760. list.add("其他");
  761. JSONObject jsonObject = new JSONObject();
  762. JSONArray jsonArray = new JSONArray();
  763. JSONObject object_1 = new JSONObject();
  764. for (int i=0;i<list.size();i++){
  765. StorageRechargeAloneBean bean=new StorageRechargeAloneBean(list.get(i));
  766. object_1.put("alone", list.get(i));
  767. jsonArray.add(bean);
  768. }
  769. jsonObject.put("formStore", jsonArray);
  770. JSONArray dataArray = FastjsonUtil.getJSONArray(jsonObject.toString(), "formStore");
  771. handleFeededDatatwo(dataArray);
  772. }
  773. private void handleFeededDatatwo(JSONArray dataArray) {
  774. StorageRechargeAloneBean bean;
  775. mFeededListtwo.clear();
  776. for (Object index : dataArray) {
  777. JSONObject data = (JSONObject) index;
  778. bean= new StorageRechargeAloneBean(
  779. data.getString("alonedata"));
  780. mFeededListtwo.add(bean);
  781. }
  782. setAdaptertwo(mFeededListtwo);
  783. }
  784. private void setAdaptertwo(ArrayList<StorageRechargeAloneBean> mList) {
  785. LogUtil.i("mList", JSON.toJSONString(mList));
  786. myAdaptertwo = new SelectAdaptertwo(mList);
  787. rv_two.setAdapter(myAdaptertwo);
  788. }
  789. public void recycleDatathree(){
  790. mFeededListthree = new ArrayList<>();
  791. myAdapterthree = new SelectAdapterthree(mFeededListthree);
  792. LinearLayoutManager layoutmanager = new LinearLayoutManager(mActivity);
  793. MyLayoutManager layout = new MyLayoutManager();
  794. layout.setAutoMeasureEnabled(true);//防止recyclerview高度为wrap时测量item高度0(一定要加这个属性,否则显示不出来)
  795. layoutmanager.setOrientation(LinearLayoutManager.HORIZONTAL);//列表横向显示
  796. rv_three.setLayoutManager(layout);
  797. setAdapterthree(mFeededListthree);
  798. rv_three.setAdapter(myAdapterthree);
  799. List<String> list=new ArrayList<>();
  800. list.add("来料");
  801. list.add("空焊");
  802. list.add("连锡");
  803. list.add("少件");
  804. list.add("返向");
  805. list.add("解除不良");
  806. list.add("线路断");
  807. list.add("铜皮起翘");
  808. list.add("误测");
  809. list.add("破损");
  810. list.add("碰件");
  811. list.add("偏位");
  812. list.add("短路");
  813. list.add("不出脚");
  814. list.add("错件");
  815. list.add("其他");
  816. JSONObject jsonObject = new JSONObject();
  817. JSONArray jsonArray = new JSONArray();
  818. JSONObject object_1 = new JSONObject();
  819. for (int i=0;i<list.size();i++){
  820. StorageRechargeAloneBean bean=new StorageRechargeAloneBean(list.get(i));
  821. object_1.put("alone", list.get(i));
  822. jsonArray.add(bean);
  823. }
  824. jsonObject.put("formStore", jsonArray);
  825. JSONArray dataArray = FastjsonUtil.getJSONArray(jsonObject.toString(), "formStore");
  826. handleFeededDatathree(dataArray);
  827. }
  828. private void handleFeededDatathree(JSONArray dataArray) {
  829. StorageRechargeAloneBean bean;
  830. mFeededListthree.clear();
  831. for (Object index : dataArray) {
  832. JSONObject data = (JSONObject) index;
  833. bean= new StorageRechargeAloneBean(
  834. data.getString("alonedata"));
  835. mFeededListthree.add(bean);
  836. }
  837. setAdapterthree(mFeededListthree);
  838. }
  839. private void setAdapterthree(ArrayList<StorageRechargeAloneBean> mList) {
  840. LogUtil.i("mList", JSON.toJSONString(mList));
  841. myAdapterthree = new SelectAdapterthree(mList);
  842. rv_three.setAdapter(myAdapterthree);
  843. }
  844. /**
  845. * 关于工单号弹框
  846. */
  847. private List<LinecodeBean> linecodeBeanList;
  848. private IpAndlinecodePortAdapter ipAndlinecodePortAdapter;
  849. private ClearableEditText edit_et;
  850. private PopupWindow editPW;
  851. private List<ResourcesBean> resourcesBeanList;
  852. private void initlinecodePopupWindow() {
  853. linecodeBeanList = new ArrayList<>();
  854. ipAndlinecodePortAdapter = new IpAndlinecodePortAdapter(linecodeBeanList);
  855. View contView = LayoutInflater.from(mActivity).inflate(R.layout.index_edit_pup, null);
  856. edit_et = (ClearableEditText) contView.findViewById(R.id.edit_et);
  857. TextView sure_tv = (TextView) contView.findViewById(R.id.sure_tv);
  858. TextView cancle_tv = (TextView) contView.findViewById(R.id.cancle_tv);
  859. ImageView search_im = contView.findViewById(R.id.search_im);
  860. RecyclerView rv_ip_port_data = contView.findViewById(R.id.rv_ip_port_data);
  861. rv_ip_port_data.addItemDecoration(new DividerItemDecoration(mActivity, LinearLayout.VERTICAL));
  862. rv_ip_port_data.setLayoutManager(new LinearLayoutManager(mActivity));
  863. ipAndlinecodePortAdapter.setmList(linecodeBeanList);
  864. rv_ip_port_data.setAdapter(ipAndlinecodePortAdapter);
  865. getfuzzySearchData(ce_work_code.getText().toString().trim(),"弹框");
  866. editPW = new PopupWindow(contView, LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT, true);
  867. editPW.setTouchable(true);
  868. editPW.setBackgroundDrawable(new BitmapDrawable());
  869. editPW.setOnDismissListener(new BasePopupWindow.OnDismissListener() {
  870. @Override
  871. public void onDismiss() {
  872. closeListPopupWindow();
  873. }
  874. });
  875. View parentView = mActivity.getWindow().findViewById(Window.ID_ANDROID_CONTENT);
  876. editPW.showAtLocation(parentView, Gravity.CENTER, 0, 0);
  877. CommonUtil.setBackgroundAlpha(mActivity, 0.5f);
  878. search_im.setOnClickListener(new View.OnClickListener() {
  879. @Override
  880. public void onClick(View v) {
  881. getfuzzySearchData(ce_work_code.getText().toString().trim(),"弹框");
  882. }
  883. });
  884. ipAndlinecodePortAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
  885. @Override
  886. public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
  887. List<LinecodeBean> ipAndPortBeans = ipAndlinecodePortAdapter.getmList();
  888. ma_code = ipAndPortBeans.get(position).getMA_CODE();
  889. ma_id = ipAndPortBeans.get(position).getMA_ID();
  890. for (int i = 0; i < ipAndPortBeans.size(); i++) {
  891. ipAndPortBeans.get(i).setChecked(false);
  892. }
  893. ipAndPortBeans.get(position).setChecked(true);
  894. ipAndlinecodePortAdapter.notifyDataSetChanged();
  895. }
  896. });
  897. //确定
  898. sure_tv.setOnClickListener(new View.OnClickListener() {
  899. @Override
  900. public void onClick(View v) {
  901. ce_work_code.setText(ma_id);
  902. tv_gonema_code.setText(ma_code);
  903. closeListPopupWindow();
  904. }
  905. });
  906. //取消
  907. cancle_tv.setOnClickListener(new View.OnClickListener() {
  908. @Override
  909. public void onClick(View v) {
  910. closeListPopupWindow();
  911. }
  912. });
  913. // edit_et.addTextChangedListener(new TextWatcher() {
  914. // @Override
  915. // public void beforeTextChanged(CharSequence s, int start, int count, int after) { }
  916. // @Override
  917. // public void onTextChanged(CharSequence s, int start, int before, int count) { }
  918. // @Override
  919. // public void afterTextChanged(Editable s) {
  920. // if (linecodeBeanList.isEmpty()){
  921. // getfuzzySearchData(ce_work_code.getText().toString().trim(),"弹框");
  922. // }
  923. // if (s.length() >= 0) {
  924. // String mSearchStr = s.toString().trim();
  925. // LogUtil.i("mSearchStr",mSearchStr);
  926. // List<LinecodeBean> thisList = new ArrayList<>();
  927. // for(int i=0;i<linecodeBeanList.size();i++){
  928. // if(linecodeBeanList.get(i).getMA_CODE().contains(mSearchStr)){
  929. // thisList.add(linecodeBeanList.get(i));
  930. // }
  931. // if(i == linecodeBeanList.size() -1){
  932. // ipAndlinecodePortAdapter = new IpAndlinecodePortAdapter(thisList);
  933. // rv_ip_port_data.setAdapter(ipAndlinecodePortAdapter);
  934. // LogUtil.i("mSearchStr", JSON.toJSONString(thisList));
  935. // }
  936. // }
  937. // ipAndlinecodePortAdapter.notifyDataSetChanged();
  938. //
  939. // } else {
  940. //
  941. // ipAndlinecodePortAdapter = new IpAndlinecodePortAdapter(linecodeBeanList);
  942. // rv_ip_port_data.setAdapter(ipAndlinecodePortAdapter);
  943. //
  944. // }
  945. // ipAndlinecodePortAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
  946. // @Override
  947. // public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
  948. // List<LinecodeBean> ipAndPortBeans = ipAndlinecodePortAdapter.getmList();
  949. // for (int i = 0; i < ipAndPortBeans.size(); i++) {
  950. // ipAndPortBeans.get(i).setChecked(false);
  951. // }
  952. // ipAndPortBeans.get(position).setChecked(true);
  953. // ipAndlinecodePortAdapter.notifyDataSetChanged();
  954. // }
  955. // });
  956. // }
  957. //
  958. // });
  959. }
  960. /**
  961. * 关于岗位资源弹框
  962. */
  963. private void initresourcesPopupWindow() {
  964. resourcesBeanList = new ArrayList<>();
  965. ipAndResourcesPortAdapter = new IpAndResourcesPortAdapter(resourcesBeanList);
  966. View contView = LayoutInflater.from(mActivity).inflate(R.layout.index_edit_pup, null);
  967. edit_et = (ClearableEditText) contView.findViewById(R.id.edit_et);
  968. TextView sure_tv = (TextView) contView.findViewById(R.id.sure_tv);
  969. TextView cancle_tv = (TextView) contView.findViewById(R.id.cancle_tv);
  970. ImageView search_im = contView.findViewById(R.id.search_im);
  971. RecyclerView rv_ip_port_data = contView.findViewById(R.id.rv_ip_port_data);
  972. rv_ip_port_data.addItemDecoration(new DividerItemDecoration(mActivity, LinearLayout.VERTICAL));
  973. rv_ip_port_data.setLayoutManager(new LinearLayoutManager(mActivity));
  974. ipAndResourcesPortAdapter.setmList(resourcesBeanList);
  975. rv_ip_port_data.setAdapter(ipAndResourcesPortAdapter);
  976. getfuzzySearchSourceData(at_station.getText().toString().trim(),"弹框");
  977. editPW = new PopupWindow(contView, LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT, true);
  978. editPW.setTouchable(true);
  979. editPW.setBackgroundDrawable(new BitmapDrawable());
  980. editPW.setOnDismissListener(new BasePopupWindow.OnDismissListener() {
  981. @Override
  982. public void onDismiss() {
  983. closeListPopupWindow();
  984. }
  985. });
  986. View parentView = mActivity.getWindow().findViewById(Window.ID_ANDROID_CONTENT);
  987. editPW.showAtLocation(parentView, Gravity.CENTER, 0, 0);
  988. CommonUtil.setBackgroundAlpha(mActivity, 0.5f);
  989. search_im.setOnClickListener(new View.OnClickListener() {
  990. @Override
  991. public void onClick(View v) {
  992. getfuzzySearchSourceData(at_station.getText().toString().trim(),"弹框");
  993. }
  994. });
  995. ipAndResourcesPortAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
  996. @Override
  997. public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
  998. List<ResourcesBean> ipAndPortBeans = ipAndResourcesPortAdapter.getmList();
  999. sc_code = ipAndPortBeans.get(position).getSC_CODE();
  1000. for (int i = 0; i < ipAndPortBeans.size(); i++) {
  1001. ipAndPortBeans.get(i).setChecked(false);
  1002. }
  1003. ipAndPortBeans.get(position).setChecked(true);
  1004. ipAndResourcesPortAdapter.notifyDataSetChanged();
  1005. }
  1006. });
  1007. //确定
  1008. sure_tv.setOnClickListener(new View.OnClickListener() {
  1009. @Override
  1010. public void onClick(View v) {
  1011. at_station.setText(sc_code);
  1012. if (!StringUtil.isEmpty(sc_code)){
  1013. SharedPreUtil.saveString(mActivity,"sc_codecollethree",sc_code);
  1014. }
  1015. closeListPopupWindow();
  1016. }
  1017. });
  1018. //取消
  1019. cancle_tv.setOnClickListener(new View.OnClickListener() {
  1020. @Override
  1021. public void onClick(View v) {
  1022. closeListPopupWindow();
  1023. }
  1024. });
  1025. // edit_et.addTextChangedListener(new TextWatcher() {
  1026. // @Override
  1027. // public void beforeTextChanged(CharSequence s, int start, int count, int after) { }
  1028. // @Override
  1029. // public void onTextChanged(CharSequence s, int start, int before, int count) { }
  1030. // @Override
  1031. // public void afterTextChanged(Editable s) {
  1032. // if (resourcesBeanList.isEmpty()){
  1033. // getfuzzySearchSourceData(at_station.getText().toString().trim(),"弹框");
  1034. // }
  1035. // if (s.length() >= 0) {
  1036. // String mSearchStr = s.toString().trim();
  1037. // LogUtil.i("mSearchStr",mSearchStr);
  1038. // List<ResourcesBean> thisList = new ArrayList<>();
  1039. // for(int i=0;i<resourcesBeanList.size();i++){
  1040. // if(resourcesBeanList.get(i).getSC_CODE().contains(mSearchStr)){
  1041. // thisList.add(resourcesBeanList.get(i));
  1042. // }
  1043. // if(i == resourcesBeanList.size() -1){
  1044. // ipAndResourcesPortAdapter = new IpAndResourcesPortAdapter(thisList);
  1045. // rv_ip_port_data.setAdapter(ipAndResourcesPortAdapter);
  1046. // LogUtil.i("mSearchStr", JSON.toJSONString(thisList));
  1047. // }
  1048. // }
  1049. // ipAndResourcesPortAdapter.notifyDataSetChanged();
  1050. //
  1051. // } else {
  1052. //
  1053. // ipAndResourcesPortAdapter = new IpAndResourcesPortAdapter(resourcesBeanList);
  1054. // rv_ip_port_data.setAdapter(ipAndResourcesPortAdapter);
  1055. //
  1056. // }
  1057. // ipAndResourcesPortAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
  1058. // @Override
  1059. // public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
  1060. // List<ResourcesBean> ipAndPortBeans = ipAndResourcesPortAdapter.getmList();
  1061. // for (int i = 0; i < ipAndPortBeans.size(); i++) {
  1062. // ipAndPortBeans.get(i).setChecked(false);
  1063. // }
  1064. // ipAndPortBeans.get(position).setChecked(true);
  1065. // ipAndResourcesPortAdapter.notifyDataSetChanged();
  1066. // }
  1067. // });
  1068. // }
  1069. //
  1070. // });
  1071. }
  1072. private void closeListPopupWindow() {
  1073. if (editPW != null) {
  1074. editPW.dismiss();
  1075. editPW = null;
  1076. CommonUtil.setBackgroundAlpha(mActivity, 1f);
  1077. }
  1078. }
  1079. public class SelectAdapterone extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
  1080. private int checkedPosition = -1;
  1081. private boolean onBind;
  1082. private ArrayList<StorageRechargeAloneBean> mList = new ArrayList<>();
  1083. private SparseBooleanArray mSelectedPositions = new SparseBooleanArray();
  1084. private boolean mIsSelectable = false;
  1085. public SelectAdapterone(ArrayList<StorageRechargeAloneBean> list) {
  1086. if (list == null) {
  1087. throw new IllegalArgumentException("model Data must not be null");
  1088. }
  1089. mList = list;
  1090. }
  1091. //更新adpter的数据和选择状态
  1092. public void updateDataSet(ArrayList<StorageRechargeAloneBean> list) {
  1093. this.mList = list;
  1094. mSelectedPositions = new SparseBooleanArray();
  1095. // ab.setTitle("已选择" + 0 + "项");
  1096. }
  1097. @Override
  1098. public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
  1099. View itemView = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.recyclerview_item, viewGroup, false);
  1100. return new SelectAdapterone.ListItemViewHolder(itemView);
  1101. }
  1102. private Map<Integer, Boolean> map = new HashMap<>();
  1103. //绑定界面,设置监听
  1104. @SuppressLint("SetTextI18n")
  1105. @Override
  1106. public void onBindViewHolder(final RecyclerView.@NotNull ViewHolder holder, @SuppressLint("RecyclerView") int i) {
  1107. //设置条目状态
  1108. (( SelectAdapterone.ListItemViewHolder) holder).mainTitle.setText(mList.get(i).getAlonedata());
  1109. if (mList.get(i).getAlonedata().equals("其他")){
  1110. (( SelectAdapterone.ListItemViewHolder) holder).ce_other.setVisibility(View.VISIBLE);
  1111. }else {
  1112. (( SelectAdapterone.ListItemViewHolder) holder).ce_other.setVisibility(View.GONE);
  1113. }
  1114. // ((ListItemViewHolder) holder).checkBox.setChecked();
  1115. //checkBox的监听
  1116. (( SelectAdapterone.ListItemViewHolder) holder).checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
  1117. @Override
  1118. public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
  1119. if (isChecked == true) {
  1120. map.clear();
  1121. map.put(i, true);
  1122. checkedPosition = i;
  1123. } else {
  1124. map.remove(i);
  1125. if (map.size() == 0) {
  1126. checkedPosition = -1; //-1 代表一个都未选择
  1127. }
  1128. }
  1129. if (!onBind) {
  1130. notifyDataSetChanged();
  1131. }
  1132. }
  1133. });
  1134. onBind = true;
  1135. if (map != null && map.containsKey(i)) {
  1136. (( SelectAdapterone.ListItemViewHolder) holder).checkBox.setChecked(true);
  1137. } else {
  1138. (( SelectAdapterone.ListItemViewHolder) holder).checkBox.setChecked(false);
  1139. }
  1140. onBind = false;
  1141. ((SelectAdapterone.ListItemViewHolder) holder).ce_other.addTextChangedListener(new TextWatcher() {
  1142. @Override
  1143. public void beforeTextChanged(CharSequence s, int start, int count, int after) {
  1144. }
  1145. @Override
  1146. public void onTextChanged(CharSequence s, int start, int before, int count) {
  1147. mList.get(i).setInputce(((SelectAdapterone.ListItemViewHolder) holder).ce_other.getText().toString().trim());
  1148. }
  1149. @Override
  1150. public void afterTextChanged(Editable s) {
  1151. }
  1152. });
  1153. }
  1154. //获得选中条目的结果
  1155. public ArrayList<StorageRechargeAloneBean> getSelectedItem() {
  1156. ArrayList<StorageRechargeAloneBean> selectList = new ArrayList<>();
  1157. int checkedPosition = getCheckedPosition();
  1158. if (checkedPosition==-1){
  1159. selectList.clear();
  1160. }else {
  1161. selectList.add(mList.get(checkedPosition));
  1162. }
  1163. return selectList;
  1164. }
  1165. //设置给定位置条目的选择状态
  1166. private void setItemChecked(int position, boolean isChecked) {
  1167. mSelectedPositions.put(position, isChecked);
  1168. }
  1169. //根据位置判断条目是否选中
  1170. private boolean isItemChecked(int position) {
  1171. return mSelectedPositions.get(position);
  1172. }
  1173. //得到当前选中的位置
  1174. public int getCheckedPosition() {
  1175. return checkedPosition;
  1176. }
  1177. @Override
  1178. public int getItemCount() {
  1179. return mList == null ? 0 : mList.size();
  1180. }
  1181. //根据位置判断条目是否可选
  1182. private boolean isSelectable() {
  1183. return mIsSelectable;
  1184. }
  1185. //设置给定位置条目的可选与否的状态
  1186. private void setSelectable(boolean selectable) {
  1187. mIsSelectable = selectable;
  1188. }
  1189. public class ListItemViewHolder extends RecyclerView.ViewHolder{
  1190. //ViewHolder
  1191. CheckBox checkBox;
  1192. TextView mainTitle;
  1193. ClearableEditText ce_other;
  1194. ListItemViewHolder(View view) {
  1195. super(view);
  1196. this.mainTitle = (TextView) view.findViewById(R.id.text);
  1197. this.checkBox = (CheckBox) view.findViewById(R.id.select_checkbox);
  1198. this.ce_other = (ClearableEditText) view.findViewById(R.id.ce_other);
  1199. }
  1200. }
  1201. }
  1202. public class SelectAdaptertwo extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
  1203. private int checkedPosition = -1;
  1204. private boolean onBind;
  1205. private ArrayList<StorageRechargeAloneBean> mList = new ArrayList<>();
  1206. private SparseBooleanArray mSelectedPositions = new SparseBooleanArray();
  1207. private boolean mIsSelectable = false;
  1208. public SelectAdaptertwo(ArrayList<StorageRechargeAloneBean> list) {
  1209. if (list == null) {
  1210. throw new IllegalArgumentException("model Data must not be null");
  1211. }
  1212. mList = list;
  1213. }
  1214. //更新adpter的数据和选择状态
  1215. public void updateDataSet(ArrayList<StorageRechargeAloneBean> list) {
  1216. this.mList = list;
  1217. mSelectedPositions = new SparseBooleanArray();
  1218. // ab.setTitle("已选择" + 0 + "项");
  1219. }
  1220. @Override
  1221. public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
  1222. View itemView = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.recyclerview_item, viewGroup, false);
  1223. return new SelectAdaptertwo.ListItemViewHolder(itemView);
  1224. }
  1225. private Map<Integer, Boolean> map = new HashMap<>();
  1226. //绑定界面,设置监听
  1227. @SuppressLint("SetTextI18n")
  1228. @Override
  1229. public void onBindViewHolder(final RecyclerView.@NotNull ViewHolder holder, @SuppressLint("RecyclerView") int i) {
  1230. //设置条目状态
  1231. (( SelectAdaptertwo.ListItemViewHolder) holder).mainTitle.setText(mList.get(i).getAlonedata());
  1232. if (mList.get(i).getAlonedata().equals("其他")){
  1233. (( SelectAdaptertwo.ListItemViewHolder) holder).ce_other.setVisibility(View.VISIBLE);
  1234. (( SelectAdaptertwo.ListItemViewHolder) holder).ce_qty.setVisibility(View.GONE);
  1235. }else {
  1236. (( SelectAdaptertwo.ListItemViewHolder) holder).ce_other.setVisibility(View.GONE);
  1237. (( SelectAdaptertwo.ListItemViewHolder) holder).ce_qty.setVisibility(View.VISIBLE);
  1238. }
  1239. // ((ListItemViewHolder) holder).checkBox.setChecked();
  1240. //checkBox的监听
  1241. (( SelectAdaptertwo.ListItemViewHolder) holder).checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
  1242. @Override
  1243. public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
  1244. if (isChecked == true) {
  1245. map.clear();
  1246. map.put(i, true);
  1247. checkedPosition = i;
  1248. } else {
  1249. map.remove(i);
  1250. if (map.size() == 0) {
  1251. checkedPosition = -1; //-1 代表一个都未选择
  1252. }
  1253. }
  1254. if (!onBind) {
  1255. notifyDataSetChanged();
  1256. }
  1257. }
  1258. });
  1259. onBind = true;
  1260. if (map != null && map.containsKey(i)) {
  1261. (( SelectAdaptertwo.ListItemViewHolder) holder).checkBox.setChecked(true);
  1262. } else {
  1263. (( SelectAdaptertwo.ListItemViewHolder) holder).checkBox.setChecked(false);
  1264. }
  1265. onBind = false;
  1266. ((SelectAdaptertwo.ListItemViewHolder) holder).ce_other.addTextChangedListener(new TextWatcher() {
  1267. @Override
  1268. public void beforeTextChanged(CharSequence s, int start, int count, int after) {
  1269. }
  1270. @Override
  1271. public void onTextChanged(CharSequence s, int start, int before, int count) {
  1272. mList.get(i).setInputce(((SelectAdaptertwo.ListItemViewHolder) holder).ce_other.getText().toString().trim());
  1273. }
  1274. @Override
  1275. public void afterTextChanged(Editable s) {
  1276. }
  1277. });
  1278. ((SelectAdaptertwo.ListItemViewHolder) holder).ce_qty.addTextChangedListener(new TextWatcher() {
  1279. @Override
  1280. public void beforeTextChanged(CharSequence s, int start, int count, int after) {
  1281. }
  1282. @Override
  1283. public void onTextChanged(CharSequence s, int start, int before, int count) {
  1284. mList.get(i).setQtyce(((SelectAdaptertwo.ListItemViewHolder) holder).ce_qty.getText().toString().trim());
  1285. }
  1286. @Override
  1287. public void afterTextChanged(Editable s) {
  1288. }
  1289. });
  1290. }
  1291. //获得选中条目的结果
  1292. public ArrayList<StorageRechargeAloneBean> getSelectedItem() {
  1293. ArrayList<StorageRechargeAloneBean> selectList = new ArrayList<>();
  1294. int checkedPosition = getCheckedPosition();
  1295. if (checkedPosition==-1){
  1296. selectList.clear();
  1297. }else {
  1298. selectList.add(mList.get(checkedPosition));
  1299. }
  1300. return selectList;
  1301. }
  1302. //设置给定位置条目的选择状态
  1303. private void setItemChecked(int position, boolean isChecked) {
  1304. mSelectedPositions.put(position, isChecked);
  1305. }
  1306. //根据位置判断条目是否选中
  1307. private boolean isItemChecked(int position) {
  1308. return mSelectedPositions.get(position);
  1309. }
  1310. //得到当前选中的位置
  1311. public int getCheckedPosition() {
  1312. return checkedPosition;
  1313. }
  1314. @Override
  1315. public int getItemCount() {
  1316. return mList == null ? 0 : mList.size();
  1317. }
  1318. //根据位置判断条目是否可选
  1319. private boolean isSelectable() {
  1320. return mIsSelectable;
  1321. }
  1322. //设置给定位置条目的可选与否的状态
  1323. private void setSelectable(boolean selectable) {
  1324. mIsSelectable = selectable;
  1325. }
  1326. public class ListItemViewHolder extends RecyclerView.ViewHolder{
  1327. //ViewHolder
  1328. CheckBox checkBox;
  1329. TextView mainTitle;
  1330. ClearableEditText ce_other;
  1331. AutoCompleteTextView ce_qty;
  1332. ListItemViewHolder(View view) {
  1333. super(view);
  1334. this.mainTitle = (TextView) view.findViewById(R.id.text);
  1335. this.checkBox = (CheckBox) view.findViewById(R.id.select_checkbox);
  1336. this.ce_other = (ClearableEditText) view.findViewById(R.id.ce_other);
  1337. this.ce_qty = (AutoCompleteTextView) view.findViewById(R.id.ce_qty);
  1338. }
  1339. }
  1340. }
  1341. private class IpAndlinecodePortAdapter extends BaseQuickAdapter<LinecodeBean, BaseViewHolder> {
  1342. private List<LinecodeBean> mmmmList;
  1343. public List<LinecodeBean> getmList() {
  1344. return mmmmList;
  1345. }
  1346. public void setmList(List<LinecodeBean> mList) {
  1347. this.mmmmList = mList;
  1348. }
  1349. public LinecodeBean getBeanByPositon(int position){
  1350. return mmmmList.get(position);
  1351. }
  1352. private IpAndlinecodePortAdapter(@Nullable List<LinecodeBean> data) {
  1353. super(R.layout.fuzzy_ipandport_item, data);
  1354. this.mmmmList = data;
  1355. }
  1356. @Override
  1357. protected void convert(BaseViewHolder helper, LinecodeBean item) {
  1358. helper.setText(R.id.macode_ip__Tv,item.getMA_ID()+"-"+item.getMA_CODE()+"-"+item.getPR_CODE()+"-"+item.getPR_DETAIL());
  1359. LinearLayout line_true = helper.itemView.findViewById(R.id.line_true);
  1360. if (item.getChecked()) {
  1361. line_true.setSelected(true);
  1362. } else {
  1363. line_true.setSelected(false);
  1364. }
  1365. }
  1366. }
  1367. private class IpAndResourcesPortAdapter extends BaseQuickAdapter<ResourcesBean, BaseViewHolder> {
  1368. private List<ResourcesBean> mmmmList;
  1369. public List<ResourcesBean> getmList() {
  1370. return mmmmList;
  1371. }
  1372. public void setmList(List<ResourcesBean> mList) {
  1373. this.mmmmList = mList;
  1374. }
  1375. public ResourcesBean getBeanByPositon(int position){
  1376. return mmmmList.get(position);
  1377. }
  1378. private IpAndResourcesPortAdapter(@Nullable List<ResourcesBean> data) {
  1379. super(R.layout.fuzzy_ipandport_item, data);
  1380. this.mmmmList = data;
  1381. }
  1382. @Override
  1383. protected void convert(BaseViewHolder helper, ResourcesBean item) {
  1384. helper.setText(R.id.macode_ip__Tv,item.getSC_CODE());
  1385. LinearLayout line_true = helper.itemView.findViewById(R.id.line_true);
  1386. if (item.getChecked()) {
  1387. line_true.setSelected(true);
  1388. } else {
  1389. line_true.setSelected(false);
  1390. }
  1391. }
  1392. }
  1393. public class SelectAdapterthree extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
  1394. private int checkedPosition = -1;
  1395. private boolean onBind;
  1396. private ArrayList<StorageRechargeAloneBean> mList = new ArrayList<>();
  1397. private SparseBooleanArray mSelectedPositions = new SparseBooleanArray();
  1398. private boolean mIsSelectable = false;
  1399. public SelectAdapterthree(ArrayList<StorageRechargeAloneBean> list) {
  1400. if (list == null) {
  1401. throw new IllegalArgumentException("model Data must not be null");
  1402. }
  1403. mList = list;
  1404. }
  1405. //更新adpter的数据和选择状态
  1406. public void updateDataSet(ArrayList<StorageRechargeAloneBean> list) {
  1407. this.mList = list;
  1408. mSelectedPositions = new SparseBooleanArray();
  1409. // ab.setTitle("已选择" + 0 + "项");
  1410. }
  1411. @Override
  1412. public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
  1413. View itemView = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.recyclerview_item, viewGroup, false);
  1414. return new SelectAdapterthree.ListItemViewHolder(itemView);
  1415. }
  1416. private Map<Integer, Boolean> map = new HashMap<>();
  1417. //绑定界面,设置监听
  1418. @SuppressLint("SetTextI18n")
  1419. @Override
  1420. public void onBindViewHolder(final RecyclerView.@NotNull ViewHolder holder, @SuppressLint("RecyclerView") int i) {
  1421. //设置条目状态
  1422. (( SelectAdapterthree.ListItemViewHolder) holder).mainTitle.setText(mList.get(i).getAlonedata());
  1423. if (mList.get(i).getAlonedata().equals("其他")){
  1424. (( SelectAdapterthree.ListItemViewHolder) holder).ce_other.setVisibility(View.VISIBLE);
  1425. }else {
  1426. (( SelectAdapterthree.ListItemViewHolder) holder).ce_other.setVisibility(View.GONE);
  1427. }
  1428. // ((ListItemViewHolder) holder).checkBox.setChecked();
  1429. //checkBox的监听
  1430. (( SelectAdapterthree.ListItemViewHolder) holder).checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
  1431. @Override
  1432. public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
  1433. if (isChecked == true) {
  1434. map.clear();
  1435. map.put(i, true);
  1436. checkedPosition = i;
  1437. } else {
  1438. map.remove(i);
  1439. if (map.size() == 0) {
  1440. checkedPosition = -1; //-1 代表一个都未选择
  1441. }
  1442. }
  1443. if (!onBind) {
  1444. notifyDataSetChanged();
  1445. }
  1446. }
  1447. });
  1448. onBind = true;
  1449. if (map != null && map.containsKey(i)) {
  1450. (( SelectAdapterthree.ListItemViewHolder) holder).checkBox.setChecked(true);
  1451. } else {
  1452. (( SelectAdapterthree.ListItemViewHolder) holder).checkBox.setChecked(false);
  1453. }
  1454. onBind = false;
  1455. ((SelectAdapterthree.ListItemViewHolder) holder).ce_other.addTextChangedListener(new TextWatcher() {
  1456. @Override
  1457. public void beforeTextChanged(CharSequence s, int start, int count, int after) {
  1458. }
  1459. @Override
  1460. public void onTextChanged(CharSequence s, int start, int before, int count) {
  1461. mList.get(i).setInputce(((SelectAdapterthree.ListItemViewHolder) holder).ce_other.getText().toString().trim());
  1462. }
  1463. @Override
  1464. public void afterTextChanged(Editable s) {
  1465. }
  1466. });
  1467. }
  1468. //获得选中条目的结果
  1469. public ArrayList<StorageRechargeAloneBean> getSelectedItem() {
  1470. ArrayList<StorageRechargeAloneBean> selectList = new ArrayList<>();
  1471. int checkedPosition = getCheckedPosition();
  1472. if (checkedPosition==-1){
  1473. selectList.clear();
  1474. }else {
  1475. selectList.add(mList.get(checkedPosition));
  1476. }
  1477. return selectList;
  1478. }
  1479. //设置给定位置条目的选择状态
  1480. private void setItemChecked(int position, boolean isChecked) {
  1481. mSelectedPositions.put(position, isChecked);
  1482. }
  1483. //根据位置判断条目是否选中
  1484. private boolean isItemChecked(int position) {
  1485. return mSelectedPositions.get(position);
  1486. }
  1487. //得到当前选中的位置
  1488. public int getCheckedPosition() {
  1489. return checkedPosition;
  1490. }
  1491. @Override
  1492. public int getItemCount() {
  1493. return mList == null ? 0 : mList.size();
  1494. }
  1495. //根据位置判断条目是否可选
  1496. private boolean isSelectable() {
  1497. return mIsSelectable;
  1498. }
  1499. //设置给定位置条目的可选与否的状态
  1500. private void setSelectable(boolean selectable) {
  1501. mIsSelectable = selectable;
  1502. }
  1503. public class ListItemViewHolder extends RecyclerView.ViewHolder{
  1504. //ViewHolder
  1505. CheckBox checkBox;
  1506. TextView mainTitle;
  1507. ClearableEditText ce_other;
  1508. ListItemViewHolder(View view) {
  1509. super(view);
  1510. this.mainTitle = (TextView) view.findViewById(R.id.text);
  1511. this.checkBox = (CheckBox) view.findViewById(R.id.select_checkbox);
  1512. this.ce_other = (ClearableEditText) view.findViewById(R.id.ce_other);
  1513. }
  1514. }
  1515. }
  1516. @Override
  1517. public boolean onKeyDown(int keyCode, KeyEvent event) {
  1518. return false;
  1519. }
  1520. @Override
  1521. public boolean onFragmentBackPressed() {
  1522. return false;
  1523. }
  1524. @Override
  1525. public void onHiddenChanged(boolean hidden) {
  1526. super.onHiddenChanged(hidden);
  1527. if (hidden) {
  1528. ((FunctionActivity) getActivity()).setMoreBtnVisible(false);
  1529. } else {
  1530. FunctionActivity.setTitle(getString(R.string.title_storage_breakdown));
  1531. ((FunctionActivity) getActivity()).setMoreBtnVisible(true);
  1532. }
  1533. }
  1534. @Override
  1535. public void onActivityResult(int requestCode, int resultCode, Intent data) {
  1536. super.onActivityResult(requestCode, resultCode, data);
  1537. if (resultCode != Activity.RESULT_OK) {
  1538. return;
  1539. }
  1540. if (requestCode == SCAN_BARCODE_CODESD && data != null) {
  1541. if (data.getExtras() != null) {
  1542. String result = data.getExtras().getString(com.uas.collection.camera.CodeUtils.RESULT_STRING);
  1543. if (mFocusId == R.id.tv_dc_emcode) {
  1544. tv_dc_emcode.setText(result);
  1545. tv_dc_emcode.setSelection(result.length());
  1546. getOrImage(result);
  1547. }
  1548. }
  1549. }
  1550. }
  1551. }