我目前正在Android Studio中编程创建一个" ThermoCalc"。基本上我需要将华氏温度转换为摄氏温度,反之亦然。我的问题是我的计算结果是一样的,我的编码中有一些错误,也许它不应该是什么?希望有人能提供帮助。我是编码和慢慢学习的新手。任何反馈都表示赞赏。谢谢
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final EditText etTemp = (EditText) findViewById(R.id.txtTemperature);
final TextView tvOutput = (TextView) findViewById(R.id.lblOutput);
final RadioButton radFahToCelLogic = (RadioButton) findViewById(R.id.radFahToCel);
final RadioButton radCelToFahLogic = (RadioButton) findViewById(R.id.radCelToFah);
Button btnConvertLogic = (Button) findViewById(R.id.btnConvert);
btnConvertLogic.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
double dblFahrenheit = 0;
double dblCelcius = (5.0/9) * (dblFahrenheit -32);
double dblConvertedTemp = 0;
double dblFahConversion;
// format
DecimalFormat dfTenth = new DecimalFormat("#.#");
if (radFahToCelLogic.isChecked())
{
if (dblFahrenheit <= 212)
{
dblConvertedTemp = (5.0/9.0) * (dblFahrenheit - 32);
tvOutput.setText (dfTenth.format(dblConvertedTemp));
}
}
}
});
我认为这个问题与我的dblFahrenheit设置为&#34; 0&#34;有关。
因此,基本上在我的应用程序运行的模拟器中,我有一个EditText小部件,您可以在其中输入温度,TextView小部件用于显示输出,以及两个单选按钮位于RadioGroup中。
在我的if语句中,我正在检查输入的温度是否等于或小于212.如果是,那么我需要将输入的温度从华氏温度转换为摄氏温度。
在运行我的应用程序时,无论我在EditText(温度)中放入什么号码,答案总是&#34; 17.8&#34;。
答案 0 :(得分:1)
看起来你只是忘了使用输入。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final EditText etTemp = (EditText) findViewById(R.id.txtTemperature);
final TextView tvOutput = (TextView) findViewById(R.id.lblOutput);
final RadioButton radFahToCelLogic = (RadioButton) findViewById(R.id.radFahToCel);
final RadioButton radCelToFahLogic = (RadioButton) findViewById(R.id.radCelToFah);
Button btnConvertLogic = (Button) findViewById(R.id.btnConvert);
btnConvertLogic.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
double dblFahrenheit = 0;
double dblCelcius = (5.0/9) * (dblFahrenheit -32);
double dblConvertedTemp = 0;
double dblFahConversion;
// format
DecimalFormat dfTenth = new DecimalFormat("#.#");
if (radFahToCelLogic.isChecked())
{
String strFah = etTemp.getText().toString();
if (!strFah.isEmpty()){
dblFahrenheit = Double.parseDouble(strFah);
if (dblFahrenheit <= 212)
{
dblConvertedTemp = (5.0/9.0) * (dblFahrenheit - 32);
tvOutput.setText (dfTenth.format(dblConvertedTemp));
}
}
}
}
});