0

私はアプリ作成にまったく慣れていないので、2 つの EditText (数値のみ) があり、それらを分割してパーセンテージに変換し、TextView に表示するものを作成したいと考えています。残念ながら、私がしていることが正しいかどうかはわかりません。これが私のコードです

    import android.app.Activity;
    import android.os.Bundle;
    import android.view.Menu;
    import android.widget.EditText;
    import android.widget.TextView;
    public class FirstInformation extends Activity {

EditText eT4 = (EditText)findViewById(R.id.editText4);
EditText eT5 = (EditText)findViewById(R.id.editText5);
TextView tV6 = (TextView)findViewById(R.id.textView6);

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_first_information);
    if (eT4 != null && eT5 != null){
        double numerator = (double) Integer.parseInt(eT4.getText().toString());
        double denominator = (double) Integer.parseInt(eT5.getText().toString());
        double textView = Math.round(numerator/denominator)*100;
        tV6.setText(textView+"");
    }
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.first_information, menu);
    return true;    
}


public void updateTextView() {
    if (eT4 != null && eT5 != null){
        double numerator = (double) Integer.parseInt(eT4.getText().toString());
        double denominator = (double) Integer.parseInt(eT5.getText().toString());
        double textView = Math.round(numerator/denominator)*100;
        tV6.setText(textView+"");
    }
    return;
}

}

どんなフィードバックでも素晴らしいでしょう。どうもありがとう!

4

3 に答える 3

0

他の人が言ったように、findViewById()呼び出しはonCreate()メソッドに入り、それ以外の場合は null を返します。

もう 1 つ:updateTextView()は呼び出されません。TextWatcherまたは単にonClickListenerを使用できます。

tv6.setOnClickListener(new onClickListener() {
    @Override
    public void onClick(View v) {
        updateTextView();
    }
});

また、結果の textView をクリックするたびに結果が更新されます。ところで、TextWatcher (afterTextChanged()メソッド付き) を使用することをお勧めします。ガイド/チュートリアルを受講して試してみることをお勧めします;)

于 2013-06-21T00:06:58.097 に答える