My question almost same like
getExtractedText on inactive InputConnection warning on android
When i editText, then i trigger something/like func A. Then i press back to lost focus on editText, then it trigger editText onchange multiple times(func A called multiple times).
when on editText onchange once (func A result) :
HIT KEY
When i lost focus ( It' will trigger as much as editText that shown and the result is func A called multiple times ) :
HIT KEY
HIT KEY
HIT KEY
HIT KEY
HIT KEY
HIT KEY
And my question is, why between them there is warning message :
W/IInputConnectionWrapper: beginBatchEdit on inactive InputConnection
W/IInputConnectionWrapper: endBatchEdit on inactive InputConnection
How i can stop this warning, or someone could help me understand about this message. Why after this message pop up, trigger onchange editText again multiple times.
Some note :
using Android Studio 3.5
I'm using listView in CustomeAdapter :
@Override public View getView(final int position, View convertView, ViewGroup parent) { final ViewHolder holder; final String TAG = "get view "; if (convertView == null) { holder = new ViewHolder(); LayoutInflater inflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); convertView = inflater.inflate(R.layout.lv_item, null, true); holder.editTextCrt = (EditText) convertView.findViewById(R.id.editidCrt); holder.editTextLsn = (EditText) convertView.findViewById(R.id.editidLsn); holder.editTextPcs = (EditText) convertView.findViewById(R.id.editidPcs); holder.editTextSeq = (EditText) convertView.findViewById(R.id.editidSeq); holder.textView = (TextView) convertView.findViewById(R.id.viewid); convertView.setTag(holder); }else { // the getTag returns the viewHolder object set as a tag to the view holder = (ViewHolder)convertView.getTag(); } holder.editTextCrt.setText(editModelArrayList.get(position).getEditTextValueCrt()); holder.editTextLsn.setText(editModelArrayList.get(position).getEditTextValueLsn()); holder.editTextPcs.setText(editModelArrayList.get(position).getEditTextValuePcs()); holder.editTextSeq.setText(editModelArrayList.get(position).getEditTextValueSeq()); holder.textView.setText(editModelArrayList.get(position).getTextViewValue()); holder.editTextCrt.addTextChangedListener(new TextWatcher() { boolean mToggle = false; boolean mToggle2 = false; public void onTextChanged(CharSequence s, int i, int i1, int i2) { if (mToggle) { if (mToggle2) { if(s.length() != 0){ Log.d(TAG, "onTextChanged: HIT KEY" ); editModelArrayList.get(position).setEditTextValueCrt(holder.editTextCrt.getText().toString()); } } mToggle2 = !mToggle2; } mToggle = !mToggle; } } }