我在布局上有两个EditText,我想在第一次更改时只需将符号添加到第二个edittext
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.
etInput = (EditText) findViewById(R.id.etInput);
etOutput = (EditText) findViewById(R.id.etOutput);
etInput.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i2, int i3) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i2, int i3) {
etOutput.append(charSequence);
}
@Override
public void afterTextChanged(Editable editable) {
}
});
但是它在第一次运行后冻结了。例如,我输入“h”字母。它被添加到第二个edittext中。但是当我试图输入其他符号时,没有任何反应。
我的错误的logcat在这里:http://pastebin.com/p2qizUU0
答案 0 :(得分:0)
不要直接添加到EditText。使用可编辑的。
etInput.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i2, int i3) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i2, int i3) {
etOutput.append(charSequence);
Editable edtOutput = etOutput.getText();
edtOutput.clear();
edtOutput.insert(0,charSequence);
}
@Override
public void afterTextChanged(Editable editable) {
}
});
答案 1 :(得分:0)
在onTextChanged中你可以这样做:
String str = etOutput.getText().toString();
str+=charSequence.toString();
etOutput.settext(str);
直接附加到edittext我认为是问题。