使用文本字段,如何在不断更新文本的同时设置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);
}
任何想法或想法?谢谢!
答案 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){}
});