从 EditText 中不能获取数据

我不能从 EditText fr1中获取数据。然后在fr1中输入一些文本,点击按钮 btn 但是没有任何反应。TextView 的结果还是空的。为什么是空的呢?

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;
    }
}
btn.setOnClickListener(new OnClickListener() {
    public void onClick(View v) {
        result.setText(getStrFromEditText());
    }
});

private String getStrFromEditText() {
    return fr1.getText().toString().trim();
}

当点击按钮时你需要检索文本

把代码 String s = fr1.getText().toString();移动到按钮的 OnClickListener 方法中。

final String s = fr1.getText().toString();已经把值给取出来了,所以即使EditText有值,你点击按钮获取的也是null