我知道这个主题有很多答案,但我还有一个问题需要做一件额外的事情。
我想在edittext中输入数据时更新文本视图((我知道这一部分))。
问题:如果我有一个按钮,当我点击该按钮时,我想发布输入的文本并结束更新方法。
这是代码:
//in a class
//I declared these objects and found them by id
Button button;
TextView textview;
EditText edittext;
//in the oncreate method
//I made a string variable called enteredData;
String enteredData=edittext.getText().toString();
//now to update the textview each time I type data in edittext
edittext.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) {
textview.setText(enteredData);
}
}
});
//The problem here
button.setOnClickListener(new View.OnClickListener() {
@override
public void onClick(View view){
//how to set the text finally into the text view and stop the update of
//this text view
}
});
感谢。
答案 0 :(得分:0)
button.setOnClickListener(new View.OnClickListener() {
@override
public void onClick(View view){
String enteredData=edittext.getText().toString();
textview.setText(enteredData);
textview.setEnabled(false); // you have to enable again
}
});
答案 1 :(得分:0)
@Hasan BT
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
TextView textView;
Button button;
EditText editText;
boolean flag;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = (TextView) findViewById(R.id.lblHeader);
button = (Button) findViewById(R.id.btnFragmentOne);
editText = (EditText) findViewById(R.id.editText);
button.setOnClickListener(this);
editText.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// TODO Auto-generated method stub
if(!flag)
textView.setText(s);
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
}
});
}
@Override
public void onClick(View view) {
flag = true;
}
}
答案 2 :(得分:0)
这很简单 -
String enteredData=edittext.getText().toString();
Boolean pauseTextEntered=false;
edittext.addTextChangedListener(new TextWatcher() {
@Override
public void afterTextChanged(Editable s) {
if(!pauseTextEntered)
textview.setText(enteredData);
}
}
});
button.setOnClickListener(new View.OnClickListener() {
@override
public void onClick(View view){
if(!pauseTextEntered)
textview.setText(enteredData);
pauseTextEntered=true;
}
});