我创建的应用仅显示用户在EditText
中输入的内容。
这是其onCreate
的{{1}}方法:
MainActivity
问题是这样的:
运行应用程序时,一切正常:
但是,当我只是换行时
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final EditText input = (EditText) findViewById(R.id.input);
final TextView output = (TextView) findViewById(R.id.output);
final Editable input_editable = (Editable) input.getText();
final Button show = (Button) findViewById(R.id.show);
final Button reset = (Button) findViewById(R.id.reset);
show.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String text = input_editable.toString();
output.setText(text);
}
});
reset.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
input_editable.clear();
}
});
}
对此
input_editable.clear();
然后在启动应用程序后发生这种情况:
为什么?
谢谢
答案 0 :(得分:0)
input_editable保留文本直到清除。它不能覆盖文本并始终保留最新文本。如果您每次都使用新参考,那么您将获得期望值。
只需尝试:
show.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String text = input.getEditableText().toString();
textView.setText(text);
}
});
每次都在此处初始化引用,以便在应用引用时得到预期的输出:
input.setText("");