为什么我无法从EditText获取数据

时间:2012-09-04 19:11:22

标签: android

我无法从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;
    }
}

2 个答案:

答案 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,你应该好好去。