如何使用EditText设置TextView的文本?

时间:2014-07-07 16:14:46

标签: android android-edittext

使用文本字段,如何在不断更新文本的同时设置TextView的文本?例如:用户开始在文本字段中键入信息,这会更改他们所处活动中的某些文本,但是,用户无需手动更新文本,而是自动文本 / strong>刷新。

我自己尝试过这样做,并寻找其他困境,但似乎没有任何工作。此外,我正在处理可能导致问题的碎片。代码位于下方,分区为onCreateView()之前,onCreateView()之内和onCreateView()之后的区域。

之前 onCreateView()

// Edit Text
EditText exerciseOneTitle;

// String value, contains value of exerciseOneTitle
String value;

// titleOne, what I want to the user to be able to change
TextView titleOne;

期间 onCreateView()

// Edit text
exerciseOneTitle = (EditText) rootView.findViewById(R.id.exercise_text);

// Get Edit Text value
value = exerciseOneTitle.getText().toString();

// Set title so there is always an initial value
titleOne.setText(R.string.exercise_one);

// Checks if edit text is focused
exerciseOneTitle.setOnFocusChangeListener(new OnFocusChangeListener() {          

    public void onFocusChange(View v, boolean hasFocus) {
        // While edit text is focused, update titleOne via refresh()
        while (hasFocus == true) {
            refresh();
        }
    }
});

之后 onCreateView()

// Get the updated "value" and set it as titleOne text
// Additionaly, will be using it in other situations
public void refresh() {
    value = exerciseOneTitle.getText().toString();
    titleOne.setText(value);
}

任何想法或想法?谢谢!

1 个答案:

答案 0 :(得分:0)

您可以使用TextWatcher ..请参阅link

根据文档

  

onTextChanged()被调用以通知您在s内的计数   从开头开始的字符刚刚替换了旧文本   之前的长度。尝试对s进行更改是错误的   这个回调。

试试这个..

    tv = (TextView)findViewById(R.id.charCounts);
    textMessage = (EditText)findViewById(R.id.textMessage);
    textMessage.addTextChangedListener(new TextWatcher(){
        public void afterTextChanged(Editable s) {
            tv.setText(textMessage.getText().toString());
        }
        public void beforeTextChanged(CharSequence s, int start, int count, int after){}
        public void onTextChanged(CharSequence s, int start, int before, int count){}
    });