2016-09-17 22 views
-1

我见过这么多的例子,但没有人为我工作。我想要的是通过EditText的addTextChangeListener()设置文本到TextView。但我的textview文本正在为我在edittext中输入的每个字符重复。edittext addtextchange listener重新提供文字

我在这里我的代码:

edtFromName.addTextChangedListener(new TextWatcher() { 
      private String lastValue = ""; 
      @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) { 
       setMessage(); 
      } 
     }); 

// setMessage code: 
    private void setMessage() { 

     if (refVia.getSelectedItemPosition() < 3) { 
      if (txtCompany.equals("")) { 
       txtText.append(" or "); 
      } else { 
       txtText.append(" " + txtCompany + " or "); 
      } 
     } else { 
      if (txtSupplier.equals("")) { 
       txtText.append(" or "); 
      } else { 
       txtText.append(" " + txtSupplier + " or "); 
      } 
     } 

     txtText.append(edtFromName.getText().toString() + "."); 
    } 

输出:

Edittext: sagar 

textview: s 
textview: sa 
textview: sag 
textview: saga 
textview: sagar 
+0

重复的意义。你的输入是什么?输出是什么? –

+0

检查我的更新 –

回答

0

好了,所以对于附加。

int mainStringLength = txtText.getText().toString().length(); 
int nameStringLength = edtFromName.getText().toString().length(); 
String trimString = txtText.getText().toString().substring(0,(mainStringLength - nameStringLength); 

//Now set this string. 
txtText.setText(trimString); 
+0

抱歉..但这不是我的解决方案..我不仅设置edittext值..我还有其他的自动完成文本。这就是为什么我使用附加。 –

+0

谢谢你shabbir ..其工作..但其他文字有一些问题,但我会管理它..毕竟你给了我一个可怕的想法.. –

+0

伟大的解决方案帮助你。考虑upvote太:) –