在设备模拟器5554上启动活动com.example.converter.MainActivity
在控制台中此注释之后,它向我显示了运行时错误,不幸的是转换器已停止。

请建议我该怎么办?

public class mainactivity extends Activity {

private EditText text;

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
 @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

  // This method is called at button click because we assigned the name to the
  // "OnClick property" of the button
  public void onClick(View view) {
    switch (view.getId()) {
    case R.id.button1:
      RadioButton celsiusButton = (RadioButton) findViewById(R.id.radioButton1);
      RadioButton fahrenheitButton = (RadioButton) findViewById(R.id.radioButton2);
      if (text.getText().length() == 0) {
        Toast.makeText(this, "Please enter a valid number",
            Toast.LENGTH_LONG).show();
        return;
      }

      float inputValue = Float.parseFloat(text.getText().toString());
      if (celsiusButton.isChecked()) {
        text.setText(String
            .valueOf(convertFahrenheitToCelsius(inputValue)));
        celsiusButton.setChecked(false);
        fahrenheitButton.setChecked(true);
      } else {
        text.setText(String
            .valueOf(convertCelsiusToFahrenheit(inputValue)));
        fahrenheitButton.setChecked(false);
        celsiusButton.setChecked(true);
      }
      break;
    }
  }

  // Converts to celsius
  private float convertFahrenheitToCelsius(float fahrenheit) {
    return ((fahrenheit - 32) * 5 / 9);
  }

  // Converts to fahrenheit
  private float convertCelsiusToFahrenheit(float celsius) {
    return ((celsius * 9) / 5) + 32;
  }
}

最佳答案

您忘记了初始化text EditText。

我想你是NullPointerException在这里if (text.getText().length() == 0) {

因此在使用之前,请像这样初始化。

text = (EditText)findViewById(R.id.yourTextViewId);

关于android - 不幸的是,应用已停止,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15675479/

10-12 03:16