2

我无法从 EditText 获取数据fr1。我在 中输入一些文本fr1,按下按钮btn,没有任何反应。文本视图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;
    }
}
4

2 回答 2

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);
    }
});

您需要更改的原因是您没有从按钮单击上的 EditText 获取文本,而是在单击按钮之前(在 onCreate() 中),其中 EditText 可能具有空字符串作为文本。因此,您无法打印您键入的内容。现在您可以通过从 onClick() 中的 EditText 获取文本来找到解决的问题

于 2012-09-04T19:12:46.333 回答
3

您需要在单击按钮时检索文本,而不是在扩展EditText. 在后一种情况下,键入的文本将不可用。

移动

String s = fr1.getText().toString();

进入按钮OnClickListener,你应该很高兴。

于 2012-09-04T19:14:53.213 回答