Android 触发多次TextEdit onTextChanged

Android 触发多次TextEdit onTextChanged,android,android-edittext,android-textwatcher,Android,Android Edittext,Android Textwatcher,我的基本代码是works,但当编辑一些editText时,我混淆了触发器。当editText处于编辑或更改状态时 我的推荐人是: 我的输入类型Xml是number,我尝试了一下。另一种方法是使用忽略,并且仍然得到了相同的结果,卡住了编号|文本建议 与此相比,我的代码仍然有意义 奇怪的结果是: 第一个代码仅触发/触发1次,与第二个代码相比,将导致一次多次触发: public void onTextChanged(CharSequence charSequence, int i, in

我的基本代码是works,但当编辑一些editText时,我混淆了触发器。当editText处于编辑或更改状态时

我的推荐人是:

我的输入类型Xml是number,我尝试了一下。另一种方法是使用忽略,并且仍然得到了相同的结果,卡住了<代码>编号|文本建议

  • 与此相比,我的代码仍然有意义

  • 奇怪的结果是:

第一个代码仅触发/触发1次,与第二个代码相比,将导致一次多次触发:

public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
    editModelArrayList.get(position).setEditTextValueCrt(holder.editTextCrt.getText().toString());
    if (mToggle) {
        if (mToggle2) {
            Log.d(TAG, "onTextChanged: HIT KEY" + mToggle);

            try {
                Integer val = Integer.valueOf(holder.editTextSeq.getText().toString());
                if exist data previously, so never replace in seq only
            }
            catch (Exception e){
                //get all data, if empty > set 1, else set : check all data, count data +1
                List<Integer> listQtySeq;
                listQtySeq = new ArrayList<Integer>();
                for (int j = 0; j < CustomeAdapter.editModelArrayList.size(); j++){
                    String nilaiSeq = editModelArrayList.get(j).getEditTextValueSeq();
                    nilaiSeq = checkNull(nilaiSeq);
                    if (Integer.parseInt(nilaiSeq) > 0) {
                        listQtySeq.add(Integer.parseInt(nilaiSeq));
                    }
                }
                Log.d(TAG, "afterTextChanged: size llistq: "+listQtySeq.size());
                if(listQtySeq.size()<1){
                    editModelArrayList.get(position).setEditTextValueSeq("1");
                }
                else{
                    Integer totSize = listQtySeq.size()+1;
                    Log.d(TAG, "afterTextChanged: size newZise: "+totSize.toString());
                    editModelArrayList.get(position).setEditTextValueSeq(totSize.toString());
                }

                Log.d(TAG, "onTextChanged: error ~" + e);
            }
        }
        mToggle2 = !mToggle2;
    }
    mToggle = !mToggle;

}
public void onTextChanged(CharSequence CharSequence,int i,int i1,int i2){
editModelArrayList.get(位置).setEditTextValueCrt(holder.editTextCrt.getText().toString());
如果(MTOGLE){
if(mToggle2){
Log.d(标记“onTextChanged:HIT KEY”+mtogle);
试一试{
Integer val=Integer.valueOf(holder.editTextSeq.getText().toString());
如果以前存在数据,则切勿仅在seq中替换
}
捕获(例外e){
//获取所有数据,如果为空>设置1,否则设置:检查所有数据,计数数据+1
列表QTYSEQ;
listQtySeq=newarraylist();
对于(int j=0;j0){
add(Integer.parseInt(nilaiSeq));
}
}
Log.d(标记“后文本更改:大小llistq:+listQtySeq.size()”);

if(listQtySeq.size()如果需要更多解释,请评论,,或者我的问题有问题..?编辑文本对象有问题吗?
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
    editModelArrayList.get(position).setEditTextValueCrt(holder.editTextCrt.getText().toString());
    if (mToggle) {
        if (mToggle2) {
            Log.d(TAG, "onTextChanged: HIT KEY" + mToggle);

            try {
                Integer val = Integer.valueOf(holder.editTextSeq.getText().toString());
                if exist data previously, so never replace in seq only
            }
            catch (Exception e){
                //get all data, if empty > set 1, else set : check all data, count data +1
                List<Integer> listQtySeq;
                listQtySeq = new ArrayList<Integer>();
                for (int j = 0; j < CustomeAdapter.editModelArrayList.size(); j++){
                    String nilaiSeq = editModelArrayList.get(j).getEditTextValueSeq();
                    nilaiSeq = checkNull(nilaiSeq);
                    if (Integer.parseInt(nilaiSeq) > 0) {
                        listQtySeq.add(Integer.parseInt(nilaiSeq));
                    }
                }
                Log.d(TAG, "afterTextChanged: size llistq: "+listQtySeq.size());
                if(listQtySeq.size()<1){
                    editModelArrayList.get(position).setEditTextValueSeq("1");
                }
                else{
                    Integer totSize = listQtySeq.size()+1;
                    Log.d(TAG, "afterTextChanged: size newZise: "+totSize.toString());
                    editModelArrayList.get(position).setEditTextValueSeq(totSize.toString());
                }

                Log.d(TAG, "onTextChanged: error ~" + e);
            }
        }
        mToggle2 = !mToggle2;
    }
    mToggle = !mToggle;

}