如何在EditText字段中设置值?

Tri*_*ahu 14 android

我有三个EditText,我想要连接前两个EditText字段中的字符串,并显示在第三个EditText字段中.在第二个字段输入字符串后,它会自动连接并设置在第三个EditText中.

EditText text1 = (EditText) findViewById(R.id.text1);
mtext1=text1.getText.toString();

EditText text2 = (EditText) findViewById(R.id.text2);
mtext2 = text2.getText.toString();


mtext3=mtext1.concat().mtext2;
Edit text3 = (EditText) findViewById(R.id.text3);
text3 = setText(mtext3.toString());
Run Code Online (Sandbox Code Playgroud)

我写了上面的代码.但是我在第三个EditText中没有结果.请给出我在我的程序中实现的解决方案

Rob*_*ond 23

这应该工作.确保您不在TextChanged侦听器中编辑text2,因为之后将再次调用afterTextChanged.

final EditText text1 = (EditText) findViewById(R.id.text1);
final EditText text2 = (EditText) findViewById(R.id.text2);
final EditText text3 = (EditText) findViewById(R.id.text3);

text2.addTextChangedListener(new TextWatcher() {
    void afterTextChanged(Editable s) {
        text3.setText(text1.getText().toString() + text2.getText().toString());
    };
});
Run Code Online (Sandbox Code Playgroud)

  • 在匿名内部类(TextWatcher)中使用时,必须将局部变量声明为final. (3认同)

Mat*_*lis 6

如果要检测两个EditText字段何时更改,则需要在每个字段上使用addTextChangedListener().以下内容可以放在onCreate()方法中:

final EditText text1 = (EditText) findViewById(R.id.text1);
final EditText text2 = (EditText) findViewById(R.id.text2);
final EditText text3 = (EditText) findViewById(R.id.text3);

TextWatcher watcher = new TextWatcher() {
    void afterTextChanged(Editable s) {
        text3.setText(text1.getText() + text2.getText());
    };
});

text1.addTextChangedListener(watcher);
text2.addTextChangedListener(watcher);
Run Code Online (Sandbox Code Playgroud)