gpt4 book ai didi

Java Intellij 错误

转载 作者:行者123 更新时间:2023-11-29 21:58:34 24 4
gpt4 key购买 nike

这是我的 android 应用的代码,还不完整

package com.example;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.Toast;

public class MainActivity extends Activity {
private EditText text;
private EditText text2;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
text = (EditText) findViewById(R.id.editText1);
text2=(EditText)findViewById(R.id.result);


}

// 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.radio0);
RadioButton fahrenheitButton = (RadioButton) findViewById(R.id.radio1);
RadioButton KelvinButton=(RadioButton) findViewById(R.id.radio2);
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()) {
text2.setText(String
.valueOf(convertFahrenheitToCelsius(inputValue)));
celsiusButton.setChecked(true);
} else {
text2.setText(String
.valueOf(convertCelsiusToFahrenheit(inputValue)));
fahrenheitButton.setChecked(false);
celsiusButton.setChecked(true);
if(KelvinButton.isChecked())
{
text2.setText(String.valueOf(convertoKelvin(inputValue)));
}
}
break;
case R.id.button2:
RadioButton celsiusButton = (RadioButton) findViewById(R.id.radio0);
RadioButton fahrenheitButton = (RadioButton) findViewById(R.id.radio1);
RadioButton KelvinButton=(RadioButton) findViewById(R.id.radio2);
float inputValue = Float.parseFloat(text.getText().toString());

if (text.getText().length() == 0) {
Toast.makeText(this, "Please enter a valid number",
Toast.LENGTH_LONG).show();
return;
}

if (fahrenheitButton.isChecked()) {
text2.setText(String
.valueOf(convertFahrenheitToCelsius(inputValue)));
celsiusButton.setChecked(true);
} else {
text2.setText(String
.valueOf(convertCelsiusToFahrenheit(inputValue)));
fahrenheitButton.setChecked(true);
if(KelvinButton.isChecked())
{
text2.setText(String.valueOf(convertoKelvin(inputValue)));
}
}
break;
case R.id.button3:
RadioButton celsiusButton = (RadioButton) findViewById(R.id.radio0);
RadioButton fahrenheitButton = (RadioButton) findViewById(R.id.radio1);
RadioButton KelvinButton=(RadioButton) findViewById(R.id.radio2);
float inputValue = Float.parseFloat(text.getText().toString());
if (text.getText().length() == 0) {
Toast.makeText(this, "Please enter a valid number",
Toast.LENGTH_LONG).show();
return;
}

if (KelvinButton.isChecked()) {
text2.setText(String
.valueOf(convertFahrenheitToCelsius(inputValue)));
celsiusButton.setChecked(true);
} else {
text2.setText(String
.valueOf(convertCelsiusToFahrenheit(inputValue)));
fahrenheitButton.setChecked(false);
celsiusButton.setChecked(true);
if(KelvinButton.isChecked())
{
text2.setText(String.valueOf(convertoKelvin(inputValue)));
}
}
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;
}

private float convertoKelvin(float celsius)
{
return ((celsius+273)) ;
}


}

如您所见,我每次都在非常情况下定义了我的变量。如果我不这样做,我会收到错误消息“该值可能尚未初始化。我做错了什么。

如果您想知道,我的代码不完整。我很讨厌这个错误,一旦这个错误被修复,我会继续

最佳答案

如果我正确理解了您的问题 如果您仅在一种情况下将值分配给 celsiusButtonfahrenheitButtonKelvinButton 变量,那么您会得到错误。

发生这种情况的原因是对象初始化的范围。下面的示例说明了正在发生的事情。

public void example() {
String str;
switch (1) {
case 1:
str = "test";// If I initalize here then there is problem since
// scope is limited to only this case
str.toString();
break;

default:
str.toString();// Compilation error here.
break;
}
}

public void example() {
String str = "test";
switch (1) {
case 1:
str.toString();
break;

default:
str.toString();// No error because scope of initialisation is whole
// method
break;
}
}

所以你需要在 switch (view.getId()) {

之前定义你的变量

结果声明如下所示

public void onClick(View view) {
RadioButton celsiusButton = (RadioButton) findViewById(R.id.radio0);
RadioButton fahrenheitButton = (RadioButton) findViewById(R.id.radio1);
RadioButton KelvinButton=(RadioButton) findViewById(R.id.radio2);
switch (view.getId()) {
case R.id.button1:

关于Java Intellij 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12558956/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com