2

我的 LogCat 说:

java.lang.RunTimeException: Unable to instantiate activity ComponentInfo{com.erikbalen.idealgaslawcalculator/com.erikbalen.idealgaslawcalculator.NumberActivity}: java.lang.NullPointerException
at android.app.ActivityThread.performLaunchActivity{ActivityThread.java:2121}

这是我的java文件:

public class NumberActivity extends Activity {

EditText pressure = (EditText) findViewById(R.id.editTextPressure);
EditText temperature = (EditText) findViewById(R.id.editTextTemperature);
EditText volume = (EditText) findViewById(R.id.editTextVolume);
TextView answer = (TextView) findViewById(R.id.textViewSolve);
Button solve = (Button) findViewById(R.id.buttonSolve);

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_number);
    solve.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {

            double pressureValue = Double.parseDouble(pressure.getText().toString());
            double temperatureValue = Double.parseDouble(temperature.getText().toString());
            double volumeValue = Double.parseDouble(volume.getText().toString());
            double r = 0.0821;
            double answerValue = (pressureValue*volumeValue)/(r*temperatureValue);
            answer.setText(Double.toString(answerValue));
        }
    });
}

}

希望这就是你所需要的。如果您需要其他代码,请告诉我。

4

1 回答 1

7

移动findViewById()电话

EditText pressure = (EditText) findViewById(R.id.editTextPressure);
EditText temperature = (EditText) findViewById(R.id.editTextTemperature);
EditText volume = (EditText) findViewById(R.id.editTextVolume);
TextView answer = (TextView) findViewById(R.id.textViewSolve);
Button solve = (Button) findViewById(R.id.buttonSolve);

所以他们追求setContentView(R.layout.activity_number);

findViewById()如果在布局中null找不到,将返回。View如果没有布局,就View找不到。Activity首次实例化时肯定没有设置布局。

于 2013-03-15T01:22:13.610 回答