我有一个EditText
框,用户可以在其中输入输入。当用户输入文本时,我需要在 a TextView
(位于 EditText 下方)中显示输入文本。
例子:
如果用户在 EditText 框中输入任何字符,我需要在 TextView 中显示相同的字符。同样,如果用户从 EditText 中删除任何字符,我需要从 TextView 中删除相同的字符。(最终,我想在更改 EditText 的文本时更改 TextView 的文本)。我希望我的要求现在很清楚。我怎样才能做到这一点?请指导我。
我有一个EditText
框,用户可以在其中输入输入。当用户输入文本时,我需要在 a TextView
(位于 EditText 下方)中显示输入文本。
例子:
如果用户在 EditText 框中输入任何字符,我需要在 TextView 中显示相同的字符。同样,如果用户从 EditText 中删除任何字符,我需要从 TextView 中删除相同的字符。(最终,我想在更改 EditText 的文本时更改 TextView 的文本)。我希望我的要求现在很清楚。我怎样才能做到这一点?请指导我。
将 TextWatcher 添加到您的 Edittext。在afterTextChanged()
做你的操作。
http://developer.android.com/reference/android/text/TextWatcher.html
TextWatcher inputTextWatcher = new TextWatcher() {
public void afterTextChanged(Editable s) {
textview.setText(s.toString());
}
public void beforeTextChanged(CharSequence s, int start, int count, int after){
}
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
};
editText.addTextChangedListener(inputTextWatcher);
您应该覆盖此方法:
editText.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void afterTextChanged(Editable s) {
if(editText.getText().length() >= 0) {
textView.setText(editText.getText().toString())
}
}
});
edtText.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// TODO Auto-generated method stub
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
if (!edtText.getText().toString().equalsIgnoreCase("")){
// here textview.setText(edtText.getText());
}
}
});
}
解决方案是将TextWatcher添加到EditText
by usingaddTextChangedListener()
函数中。在TextWatcher
您需要在 3 个函数之一中编写转换/验证逻辑,afterTextChanged()
具体取决于您想要执行这些操作的时间。beforeTextChanged()
onTextChanged()
使用 Kotlin 你会做这样的事情:
editText.addTextChangedListener(object : android.text.TextWatcher {
override fun afterTextChanged(s: Editable?) {
}
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {
}
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
s?.let { textView.text = s.toString() }
}
})