Utilizando Switch Case com uma Spinner

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);
    }

}