如何在更改EditText文本时更改TextView的文本?

时间:2012-05-22 09:22:21

标签: android android-edittext textview


我有一个EditText框,用户可以在其中输入输入。我需要在用户输入文本时在TextView(位于Edittext下面)中显示输入文本。
对于Ex:如果用户在Edittext框中输入任何字符,我需要在TextView中显示相同的字符。同样,如果用户从editetext中删除任何字符,我需要从TextView中删除相同的字符。 (Ultimtely,我想更改textview的文本更改的文本)。我希望我的要求现在很清楚。我怎样才能实现这一目标?请指导我

4 个答案:

答案 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() }
        }
    })