我无法从EditText fr1
获取数据。我在fr1
中键入了一些文字,按下按钮btn
,没有任何反应。 TextView result
为空。它为什么空?我做错了什么?谢谢。
public class MainActivity extends Activity{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
EditText fr1 = (EditText) findViewById(R.id.fraction1);
final TextView result = (TextView) findViewById(R.id.result);
Button btn = (Button) findViewById(R.id.getresult);
final String s = fr1.getText().toString();
btn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
result.setText(s);
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
答案 0 :(得分:4)
更改此
final String s = fr1.getText().toString();
btn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
result.setText(s);
}
});
到
btn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
final String s = fr1.getText().toString();
result.setText(s);
}
});
您需要更改的原因是您没有从Button上的EditText获取文本,而是单击Button(在onCreate()中右侧),其中EditText可能会将空String作为文本。所以你无法打印你输入的内容。现在,您可以通过从onClick()
中的EditText获取文本来找到问题答案 1 :(得分:3)
您需要在点击按钮时检索文本,而不是在EditText
充气后直接检索文本。在后一种情况下,键入的文本尚不可用。
移动
String s = fr1.getText().toString();
进入按钮OnClickListener
,你应该好好去。