import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.TextView;
import android.widget.Toast;
public class TemperaturaActivity extends Activity {
private TextView resultCelsiusText, resultFahrenheitText, resultKelvinText, resultRankineText;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_temperatura);
text = (EditText)findViewById(R.id.editText1);
resultCelsiusText = (TextView) findViewById(R.id.resultCelsiusText);
resultFahrenheitText = (TextView) findViewById(R.id.resultFahrenheitText);
resultKelvinText = (TextView) findViewById(R.id.resultKelvinText);
resultRankineText = (TextView) findViewById(R.id.resultRankineText);
public void converti (View view) {
RadioButton celsiusButton = (RadioButton) findViewById(R.id.celsiusButton);
RadioButton fahrenheitButton = (RadioButton) findViewById(R.id.fahrenheitButton);
RadioButton kelvinButton = (RadioButton) findViewById(R.id.kelvinButton);
RadioButton rankineButton = (RadioButton) findViewById(R.id.rankineButton);
if (text.getText().length() == 0) {
Toast.makeText(this, "Non puoi lasciare il campo vuoto", Toast.LENGTH_LONG).show();
float inputValue = Float.parseFloat(text.getText().toString());
if (celsiusButton.isChecked()) {
resultCelsiusText.setText(String.valueOf(inputValue) + "°C");
resultFahrenheitText.setText(String.valueOf(convertCelsiusToFahrenheit(inputValue)) + "°F");
resultKelvinText.setText(String.valueOf(convertCelsiusToKelvin(inputValue)) + "°K");
resultRankineText.setText(String.valueOf(convertCelsiusToRankine(inputValue)) + "°R");
} else if (fahrenheitButton.isChecked()) {
resultCelsiusText.setText(String.valueOf(convertFahrenheitToCelsius(inputValue)) + "°C");
resultFahrenheitText.setText(String.valueOf(inputValue) + "°F");
resultKelvinText.setText(String.valueOf(convertFahrenheitToKelvin(inputValue)) + "°K");
resultRankineText.setText(String.valueOf(convertFahrenheitToRankine(inputValue)) + "°R");
} else if (kelvinButton.isChecked()) {
resultCelsiusText.setText(String.valueOf(convertKelvinToCelsius(inputValue)) + "°C");
resultFahrenheitText.setText(String.valueOf(convertKelvinToFahrenheit(inputValue)) + "°F");
resultKelvinText.setText(String.valueOf(inputValue) + "°K");
resultRankineText.setText(String.valueOf(convertKelvinToRankine(inputValue)) + "°R");
} else if (rankineButton.isChecked()) {
resultCelsiusText.setText(String.valueOf(convertRankineToCelsius(inputValue)) + "°C");
resultFahrenheitText.setText(String.valueOf(convertRankineToFahrenheit(inputValue)) + "°F");
resultKelvinText.setText(String.valueOf(convertRankineToKelvin(inputValue)) + "°K");
resultRankineText.setText(String.valueOf(inputValue) + "°R");
private float convertFahrenheitToCelsius(float fahrenheit)
return ((fahrenheit - 32) * 5 / 9);
private float convertKelvinToCelsius(float kelvin)
return (float) (kelvin - 273.15);
private float convertRankineToCelsius(float rankin)
return (float) (((rankin - 491.67)*5) / 9);
private float convertCelsiusToFahrenheit(float celsius)
return ((celsius * 9) / 5) + 32;
private float convertKelvinToFahrenheit(float kelvin)
return (float) (((kelvin * 9) / 5) - 459.67);
private float convertRankineToFahrenheit(float rankin)
return (float) (rankin - 459.67);
private float convertCelsiusToKelvin(float celsius)
return (float) (celsius + 273.15);
private float convertFahrenheitToKelvin(float fahrenheit)
return (float) (((fahrenheit+ 459.67) * 5) / 9);
private float convertRankineToKelvin(float rankin)
return (float) ((rankin* 5) / 9);
private float convertCelsiusToRankine(float celsius)
return (float) (((celsius *9) / 5) + 491.67);
private float convertFahrenheitToRankine(float fahrenheit)
return (float) (fahrenheit + 459.67);
private float convertKelvinToRankine(float kelvin)
return (float) ((kelvin * 9) / 5);