重写TextWatcher ,根据自己的逻辑来判断: public class EventBSJAnimalHolder extends BaseViewHolder<EventBSJAnimalBean> { private final EditText animalName; private final EditText livingNumber, corpseNumber, fecesNumber, footprintNumber; private final EditText wojiNumber, scratchNumber, hairNumber, otherNumber; private RVBSJAnimalAdapter mRVBSJAnimalAdapter; private int position; private EventBSJAnimalBean eventBSJAnimalBean; public EventBSJAnimalHolder(View itemView) { super(itemView); animalName = itemView.findViewById(R.id.et_event_animal_name); livingNumber = itemView.findViewById(R.id.et_event_animal_living_number); corpseNumber = itemView.findViewById(R.id.et_event_animal_corpse_number); fecesNumber = itemView.findViewById(R.id.et_event_animal_feces_number); footprintNumber = itemView.findViewById(R.id.et_event_animal_footprint_number); wojiNumber = itemView.findViewById(R.id.et_event_animal_woji_number); scratchNumber = itemView.findViewById(R.id.et_event_animal_scratch_number); hairNumber = itemView.findViewById(R.id.et_event_animal_hair_number); otherNumber = itemView.findViewById(R.id.et_event_animal_other_number); animalName.addTextChangedListener(new MyTextWatcher(animalName)); livingNumber.addTextChangedListener(new MyTextWatcher(livingNumber)); corpseNumber.addTextChangedListener(new MyTextWatcher(corpseNumber)); fecesNumber.addTextChangedListener(new MyTextWatcher(fecesNumber)); footprintNumber.addTextChangedListener(new MyTextWatcher(footprintNumber)); wojiNumber.addTextChangedListener(new MyTextWatcher(wojiNumber)); scratchNumber.addTextChangedListener(new MyTextWatcher(scratchNumber)); hairNumber.addTextChangedListener(new MyTextWatcher(hairNumber)); otherNumber.addTextChangedListener(new MyTextWatcher(otherNumber)); } @SuppressLint("SetTextI18n") @Override public void setUpView(EventBSJAnimalBean model, int position, RecyclerView.Adapter adapter) { this.mRVBSJAnimalAdapter = (RVBSJAnimalAdapter) adapter; this.position = position; this.eventBSJAnimalBean = model; if (model.getAnimalName() != null) { animalName.setText(model.getAnimalName()); } livingNumber.setText(model.getLivingNumber() + ""); corpseNumber.setText(model.getCorpseNumber() + ""); fecesNumber.setText(model.getFecesNumber() + ""); footprintNumber.setText(model.getFootprint() + ""); wojiNumber.setText(model.getWojiNumber() + ""); scratchNumber.setText(model.getScratchNumber() + ""); hairNumber.setText(model.getHairNumber() + ""); otherNumber.setText(model.getOtherNumber() + ""); } private class MyTextWatcher implements TextWatcher { private EditText editText; private String data; public MyTextWatcher(EditText editText) { this.editText = editText; } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { } @Override public void afterTextChanged(Editable s) { if (delayRun != null) { //每次editText有变化的时候,则移除上次发出的延迟线程 mHandler.removeCallbacks(delayRun); } data = editText.getText().toString(); if (editText == animalName) { eventBSJAnimalBean.setAnimalName(data); } else if (editText == livingNumber) { eventBSJAnimalBean.setLivingNumber(Integer.parseInt(data)); } else if (editText == corpseNumber) { eventBSJAnimalBean.setCorpseNumber(Integer.parseInt(data)); } else if (editText == fecesNumber) { eventBSJAnimalBean.setFecesNumber(Integer.parseInt(data)); } else if (editText == footprintNumber) { eventBSJAnimalBean.setFootprint(Integer.parseInt(data)); } else if (editText == wojiNumber) { eventBSJAnimalBean.setWojiNumber(Integer.parseInt(data)); } else if (editText == scratchNumber) { eventBSJAnimalBean.setScratchNumber(Integer.parseInt(data)); } else if (editText == hairNumber) { eventBSJAnimalBean.setHairNumber(Integer.parseInt(data)); } else if (editText == otherNumber) { eventBSJAnimalBean.setOtherNumber(Integer.parseInt(data)); } //延迟800ms,如果不再输入字符,则执行该线程的run方法 mHandler.postDelayed(delayRun, 800); } } /** * 延迟线程,看是否还有下一个字符输入 */ private Runnable delayRun = new Runnable() { @Override public void run() { //在这里调用服务器的接口,获取数据 mRVBSJAnimalAdapter.setmList(eventBSJAnimalBean, position); } }; private Handler mHandler = new Handler(); }
多edittext监听变化的优化
最新推荐文章于 2023-04-08 13:43:18 发布