Autore Topic: popolare listview con risultati conversione  (Letto 346 volte)

Offline birbantello85

  • Nuovo arrivato
  • *
  • Post: 32
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    GALAXY ACE PLUS
  • Play Store ID:
    birbantello85
  • Sistema operativo:
    ANDROID 2.3.6
popolare listview con risultati conversione
« il: 19 Giugno 2013, 20:08:49 CEST »
0
Ciao a tutti!
Non so se sia la sezione giusta ma sto provando a creare un'app di conversione unità e mi sono imbattuto in un problema che non reisco proprio a rsolvere: praticamente in una activity vorrei inserire una listview le cui stringhe vengano popolate ognuna con una risultato diverso proveniente dalla conversione;
esempio: decido di convertire i CELSIUS in FAHRENHEIT/KELVIN/RANKINE; vorrei che ogni stringa riportasse: FAHRENHEIT: + risultato conversione; idem per KELVIN e RANKINE.

Nel codice che riporto qui sotto ho usato delle normali textview per visualizzare il risultato. Io vorrei sostituirle però con una listview e sostituire ai radiobutton uno spinner.
Codice (Java): [Seleziona]
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 EditText text;
        private TextView resultCelsiusText, resultFahrenheitText, resultKelvinText, resultRankineText;
       
       
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_temperatura);
                setTitle("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) {
            switch (view.getId()) {
            case R.id.converti:
              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();
                return;
              }

              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");
              }
              break;
            }
        }
       
        //      conversione in celsius
       
        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);
        }
       
        //      conversione in fahrenheit
        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);
        }
       
        //      conversione in kelvin
        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);
        }
       
        //      conversione in rankine
        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);
        }
}