2

EditText からデータを取得できませんfr1。にテキストを入力しfr1、ボタンbtnを押しても何も起こりません。TextViewresultは空です。なぜそれは空ですか?私は何を間違っていますか?ありがとう。

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 がテキストとして空の文字列を持つ可能性がある Button をクリックする前 (onCreate() の右側) ではなく、Button クリックで EditText からテキストを取得していないためです。そのため、入力したものを印刷することはできません。これで、onClick() の EditText からテキストを取得することで解決した問題を見つけることができます。

于 2012-09-04T19:12:46.333 に答える
3

を膨らませた直後ではなく、ボタンがクリックされた瞬間にテキストを取得する必要がありますEditText。後者の場合、入力したテキストはまだ利用できません。

動く

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

ボタンに入れれOnClickListenerば、準備完了です。

于 2012-09-04T19:14:53.213 に答える