我有一个EditText框,用户可以在其中输入输入。我需要在用户输入文本时在TextView(位于Edittext下面)中显示输入文本。
对于Ex:如果用户在Edittext框中输入任何字符,我需要在TextView中显示相同的字符。同样,如果用户从editetext中删除任何字符,我需要从TextView中删除相同的字符。 (Ultimtely,我想更改textview的文本更改的文本)。我希望我的要求现在很清楚。我怎样才能实现这一目标?请指导我
答案 0 :(得分:22)
将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);
答案 1 :(得分:5)
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());
}
}
});
}
答案 2 :(得分:4)
您应该覆盖此方法:
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())
}
}
});
答案 3 :(得分:0)
解决方案是使用EditText
函数将TextWatcher添加到addTextChangedListener()
。在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() }
}
})