DavidNorgren

Untitled

Apr 16th, 2014
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.47 KB | None | 0 0
  1. package com.example.testapp.app;
  2.  
  3. import android.support.v7.app.ActionBarActivity;
  4. import android.os.Bundle;
  5. import android.view.Menu;
  6. import android.view.MenuItem;
  7. import android.view.View;
  8. import android.widget.AdapterView;
  9. import android.widget.AdapterView.OnItemSelectedListener;
  10. import android.widget.Spinner;
  11. import android.widget.ArrayAdapter;
  12. import android.widget.TextView;
  13. import android.widget.EditText;
  14. import android.text.TextWatcher;
  15. import android.text.Editable;
  16.  
  17. public class MainActivity extends ActionBarActivity implements TextWatcher {
  18.     private TextView textResult;
  19.     private EditText inputValue;
  20.     private Spinner spinnerCategories, spinnerValue1, spinnerValue2;
  21.     private Unit[] spinnerTemperatureUnits = {
  22.             new Unit("Celsius", 0),
  23.             new Unit("Kelvin", 0),
  24.             new Unit("Fahrenheit", 0)
  25.     };
  26.     private Unit[] spinnerLengthUnits = {
  27.             new Unit("Centimetres", 1),
  28.             new Unit("Millimetres", 0.1f),
  29.             new Unit("Metres", 100),
  30.             new Unit("Kilometres", 100000),
  31.             new Unit("Miles", 160934),
  32.             new Unit("Feet", 30.48f),
  33.             new Unit("Inches", 2.54f)
  34.     };
  35.     private Unit[] spinnerVolumeUnits = {
  36.             new Unit("Litres", 1),
  37.             new Unit("Cubic Meters", 0),
  38.             new Unit("Cubic Kilometres", 0),
  39.             new Unit("Gallons", 3.78541f)
  40.     };
  41.     private Unit[] spinnerWeightUnits = {
  42.             new Unit("Kilos", 1),
  43.             new Unit("Grams", 0.001f),
  44.             new Unit("Tonnes", 1000),
  45.             new Unit("Pounds", 0.453592f)
  46.     };
  47.     private int catNumber, fromNumber, toNumber;
  48.  
  49.     private void fillList(Spinner spinner, Unit[] list) {
  50.         String[] names = new String[list.length];
  51.         for (int i = 0; i < list.length; i++) names[i] = list[i].getName();
  52.         spinner.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, names));
  53.     }
  54.  
  55.     private void updateCategory() {
  56.         catNumber = spinnerCategories.getSelectedItemPosition();
  57.         switch (catNumber) {
  58.             case 0: // Temperature
  59.                 fillList(spinnerValue1, spinnerTemperatureUnits);
  60.                 fillList(spinnerValue2, spinnerTemperatureUnits);
  61.                 spinnerValue1.setSelection(0); // Celsius
  62.                 spinnerValue2.setSelection(2); // Fahrenheit
  63.                 break;
  64.             case 1: // Length
  65.                 fillList(spinnerValue1, spinnerLengthUnits);
  66.                 fillList(spinnerValue2, spinnerLengthUnits);
  67.                 spinnerValue1.setSelection(2); // Metres
  68.                 spinnerValue2.setSelection(5); // Feet
  69.                 break;
  70.             case 2: // Volume
  71.                 fillList(spinnerValue1, spinnerVolumeUnits);
  72.                 fillList(spinnerValue2, spinnerVolumeUnits);
  73.                 spinnerValue1.setSelection(0); // Litres
  74.                 spinnerValue2.setSelection(3); // Gallons
  75.                 break;
  76.             case 3: // Weight
  77.                 fillList(spinnerValue1, spinnerWeightUnits);
  78.                 fillList(spinnerValue2, spinnerWeightUnits);
  79.                 spinnerValue1.setSelection(0); // Kilos
  80.                 spinnerValue2.setSelection(3); // Pounds
  81.                 break;
  82.         }
  83.         updateValues();
  84.     }
  85.     private void updateValues() {
  86.     }
  87.  
  88.     @Override
  89.     public void afterTextChanged(Editable editable) {
  90.         String inputString = inputValue.getText().toString();
  91.         double result = 0, input = Double.parseDouble(inputString);
  92.         /*fromNumber = spinnerValue1.getSelectedItemPosition();
  93.         toNumber = spinnerValue2.getSelectedItemPosition();
  94.         switch (catNumber) {
  95.             case 1: result = (input * spinnerLengthUnits[fromNumber].getRatio()) / spinnerLengthUnits[toNumber].getRatio(); break;
  96.             case 2: result = (input * spinnerVolumeUnits[fromNumber].getRatio()) / spinnerVolumeUnits[toNumber].getRatio(); break;
  97.             case 3: result = (input * spinnerWeightUnits[fromNumber].getRatio()) / spinnerWeightUnits[toNumber].getRatio(); break;
  98.         }*/
  99.         textResult.setText(Double.toString(input));
  100.     }
  101.  
  102.     @Override
  103.     public void onTextChanged(CharSequence a, int b, int c, int d) {}
  104.  
  105.     @Override
  106.     public void beforeTextChanged(CharSequence a, int b, int c, int d) {}
  107.  
  108.     @Override
  109.     protected void onCreate(Bundle savedInstanceState) {
  110.         super.onCreate(savedInstanceState);
  111.         setContentView(R.layout.activity_main);
  112.  
  113.         inputValue = (EditText) findViewById(R.id.inputValue);
  114.         textResult = (TextView) findViewById(R.id.textResult);
  115.         spinnerCategories = (Spinner) findViewById(R.id.spinnerCategories);
  116.         spinnerValue1 = (Spinner) findViewById(R.id.spinnerValue1);
  117.         spinnerValue2 = (Spinner) findViewById(R.id.spinnerValue2);
  118.  
  119.         spinnerCategories.setOnItemSelectedListener(new OnItemSelectedListener() {
  120.             @Override
  121.             public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {updateCategory();}
  122.             @Override
  123.             public void onNothingSelected(AdapterView<?> arg0) {}
  124.         });
  125.  
  126.         spinnerValue1.setOnItemSelectedListener(new OnItemSelectedListener() {
  127.             @Override
  128.             public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {updateValues();}
  129.             @Override
  130.             public void onNothingSelected(AdapterView<?> arg0) {}
  131.         });
  132.  
  133.         spinnerValue2.setOnItemSelectedListener(new OnItemSelectedListener() {
  134.             @Override
  135.             public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {updateValues();}
  136.             @Override
  137.             public void onNothingSelected(AdapterView<?> arg0) {}
  138.         });
  139.     }
  140.  
  141.     @Override
  142.     public boolean onCreateOptionsMenu(Menu menu) {
  143.        
  144.         // Inflate the menu; this adds items to the action bar if it is present.
  145.         getMenuInflater().inflate(R.menu.main, menu);
  146.         return true;
  147.     }
  148.  
  149.     @Override
  150.     public boolean onOptionsItemSelected(MenuItem item) {
  151.         // Handle action bar item clicks here. The action bar will
  152.         // automatically handle clicks on the Home/Up button, so long
  153.         // as you specify a parent activity in AndroidManifest.xml.
  154.         int id = item.getItemId();
  155.         if (id == R.id.action_settings) {
  156.             return true;
  157.         }
  158.         return super.onOptionsItemSelected(item);
  159.     }
  160.  
  161. }
Advertisement
Add Comment
Please, Sign In to add comment