Amigos! desenvolvi uma aplicação para utilizar Switch Case através da escolha da temperatura pelo ITEM na SPINNER, não há erros na programação (pelo menos o Android Studio não me informa), quando copilo a aplicação simplesmente recebo a mensagem que a aplicação parou e não roda.
Vou postar aqui a programação, se alguém puder me ajudar a identificar o motivo ou se estive errado eu fico agradecido. Sou novo em programação JAVA.
public class MainActivity extends AppCompatActivity {
Spinner temperatura;
private EditText valor;
private double v1 = Double.valueOf(valor.getText().toString());
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
temperatura = (Spinner) findViewById(R.id.spin_temperatura);
ArrayAdapter lista = ArrayAdapter.createFromResource(this, R.array.temperaturas, android.R.layout.simple_spinner_item);
temperatura.setAdapter(lista);
valor = (EditText) findViewById(R.id.valor);
Button calcular = (Button) findViewById(R.id.calcular);
calcular.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String item = temperatura.getSelectedItem().toString();
switch (item){
case "Celsius":{
displayCelcius(v1);
displayFahrenheit(v1 * 1.8 + 32);
displayKelvin(v1 + 273);
break;
}
case "Fahrenheit":{
displayFahrenheit(v1);
displayCelcius((v1 - 32) / 1.8);
displayKelvin((((v1 - 32) / 9) * 5) + 273);
break;
}
case "Kelvin":{
displayKelvin(v1);
displayCelcius(v1 - 273);
displayFahrenheit((((v1 - 273) / 5) * 9) + 32);
break;
}
}
}
});
}
private void displayCelcius(double num) {
TextView tempCelcius = (TextView) findViewById(R.id.celsius);
tempCelcius.setText("" + num);
}
private void displayFahrenheit(double num) {
TextView tempFahrenheit = (TextView) findViewById(R.id.fahrenheit);
tempFahrenheit.setText("" + num);
}
private void displayKelvin(double num) {
TextView tempKelvin = (TextView) findViewById(R.id.kelvin);
tempKelvin.setText("" + num);
}
}