DavidNorgren

Untitled

Apr 15th, 2014
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 8.68 KB | None | 0 0
  1. MainActivity.java
  2.  
  3. package com.example.testapp.app;
  4.  
  5. import android.support.v7.app.ActionBarActivity;
  6. import android.os.Bundle;
  7. import android.view.Menu;
  8. import android.view.MenuItem;
  9. import android.view.View;
  10. import android.widget.AdapterView;
  11. import android.widget.AdapterView.OnItemSelectedListener;
  12. import android.widget.Spinner;
  13. import android.widget.ArrayAdapter;
  14. import android.widget.TextView;
  15. import android.widget.EditText;
  16. import android.text.TextWatcher;
  17. import android.text.Editable;
  18.  
  19. public class MainActivity extends ActionBarActivity {
  20.     private TextView textResult;
  21.     private EditText inputValue;
  22.     private Spinner spinnerCategories, spinnerValue1, spinnerValue2;
  23.     private Unit[] spinnerTemperatureUnits = {new Unit("Celsius", 0), new Unit("Kelvin", 0), new Unit("Fahrenheit", 0)};
  24.     private Unit[] spinnerLengthUnits = {new Unit("Centimetres", 1), new Unit("Millimetres", 0.1f), new Unit("Metres", 100), new Unit("Kilometres", 100000), new Unit("Miles", 160934), new Unit("Feet", 30.48f), new Unit("Inches", 2.54f)};
  25.     private Unit[] spinnerVolumeUnits = {new Unit("Litres", 1), new Unit("Cubic Meters", 0), new Unit("Cubic Kilometres", 0), new Unit("Gallons", 3.78541f)};
  26.     private Unit[] spinnerWeightUnits = {new Unit("Kilos", 1), new Unit("Grams", 0.001f), new Unit("Tonnes", 1000), new Unit("Pounds", 0.453592f)};
  27.     private int catNumber, fromNumber, toNumber;
  28.  
  29.     private void fillList(Spinner spinner, Unit[] list) {
  30.         String[] names = new String[list.length];
  31.         for (int i = 0; i < list.length; i++) names[i] = list[i].getName();
  32.         spinner.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, names));
  33.     }
  34.  
  35.     private void updateCategory() {
  36.         catNumber = spinnerCategories.getSelectedItemPosition();
  37.         switch (catNumber) {
  38.             case 0: // Temperature
  39.                 fillList(spinnerValue1, spinnerTemperatureUnits);
  40.                 fillList(spinnerValue2, spinnerTemperatureUnits);
  41.                 spinnerValue1.setSelection(0); // Celsius
  42.                 spinnerValue2.setSelection(2); // Fahrenheit
  43.                 break;
  44.             case 1: // Length
  45.                 fillList(spinnerValue1, spinnerLengthUnits);
  46.                 fillList(spinnerValue2, spinnerLengthUnits);
  47.                 spinnerValue1.setSelection(2); // Metres
  48.                 spinnerValue2.setSelection(5); // Feet
  49.                 break;
  50.             case 2: // Volume
  51.                 fillList(spinnerValue1, spinnerVolumeUnits);
  52.                 fillList(spinnerValue2, spinnerVolumeUnits);
  53.                 spinnerValue1.setSelection(0); // Litres
  54.                 spinnerValue2.setSelection(3); // Gallons
  55.                 break;
  56.             case 3: // Weight
  57.                 fillList(spinnerValue1, spinnerWeightUnits);
  58.                 fillList(spinnerValue2, spinnerWeightUnits);
  59.                 spinnerValue1.setSelection(0); // Kilos
  60.                 spinnerValue2.setSelection(3); // Pounds
  61.                 break;
  62.         }
  63.         updateValues();
  64.     }
  65.     private void updateValues() {
  66.         float result;
  67.         fromNumber = spinnerValue1.getSelectedItemPosition();
  68.         toNumber = spinnerValue2.getSelectedItemPosition();
  69.  
  70.         if (catNumber == 0) { // Temperature conversion
  71.  
  72.         } else {
  73.  
  74.         }
  75.     }
  76.  
  77.     @Override
  78.     protected void onCreate(Bundle savedInstanceState) {
  79.         super.onCreate(savedInstanceState);
  80.         setContentView(R.layout.activity_main);
  81.  
  82.         inputValue = (EditText) findViewById(R.id.inputValue);
  83.         textResult = (TextView) findViewById(R.id.textResult);
  84.         spinnerCategories = (Spinner) findViewById(R.id.spinnerCategories);
  85.         spinnerValue1 = (Spinner) findViewById(R.id.spinnerValue1);
  86.         spinnerValue2 = (Spinner) findViewById(R.id.spinnerValue2);
  87.  
  88.         TextWatcher textWatcher = new TextWatcher() {
  89.             @Override
  90.             public void afterTextChanged(Editable editable) {updateValues();}
  91.         };
  92.         inputValue.addTextChangedListener(textWatcher);
  93.  
  94.         spinnerCategories.setOnItemSelectedListener(new OnItemSelectedListener() {
  95.             @Override
  96.             public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {updateCategory();}
  97.             @Override
  98.             public void onNothingSelected(AdapterView<?> arg0) {}
  99.         });
  100.  
  101.         spinnerValue1.setOnItemSelectedListener(new OnItemSelectedListener() {
  102.             @Override
  103.             public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {updateValues();}
  104.             @Override
  105.             public void onNothingSelected(AdapterView<?> arg0) {}
  106.         });
  107.  
  108.         spinnerValue2.setOnItemSelectedListener(new OnItemSelectedListener() {
  109.             @Override
  110.             public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {updateValues();}
  111.             @Override
  112.             public void onNothingSelected(AdapterView<?> arg0) {}
  113.         });
  114.     }
  115.  
  116.     @Override
  117.     public boolean onCreateOptionsMenu(Menu menu) {
  118.        
  119.         // Inflate the menu; this adds items to the action bar if it is present.
  120.         getMenuInflater().inflate(R.menu.main, menu);
  121.         return true;
  122.     }
  123.  
  124.     @Override
  125.     public boolean onOptionsItemSelected(MenuItem item) {
  126.         // Handle action bar item clicks here. The action bar will
  127.         // automatically handle clicks on the Home/Up button, so long
  128.         // as you specify a parent activity in AndroidManifest.xml.
  129.         int id = item.getItemId();
  130.         if (id == R.id.action_settings) {
  131.             return true;
  132.         }
  133.         return super.onOptionsItemSelected(item);
  134.     }
  135.  
  136. }
  137.  
  138. Unit.java
  139. package com.example.testapp.app;
  140.  
  141. public class Unit {
  142.     Unit(String name, float ratio) {
  143.         Name = name;
  144.         Ratio = ratio;
  145.     }
  146.     public String getName() {return Name;}
  147.     public float getRatio() {return Ratio;}
  148.  
  149.     private String Name;
  150.     private float Ratio;
  151. }
  152.  
  153. activity_main.xml
  154. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  155.     xmlns:tools="http://schemas.android.com/tools"
  156.     android:layout_width="match_parent"
  157.     android:layout_height="match_parent"
  158.     android:paddingLeft="@dimen/activity_horizontal_margin"
  159.     android:paddingRight="@dimen/activity_horizontal_margin"
  160.     android:paddingTop="@dimen/activity_vertical_margin"
  161.     android:paddingBottom="@dimen/activity_vertical_margin"
  162.     tools:context="com.example.testapp.app.MainActivity"
  163.     android:background="#ffc833">
  164.  
  165.     <Spinner
  166.         android:id="@+id/spinnerCategories"
  167.         android:entries="@array/spinnerCategoriesList"
  168.         android:layout_width="wrap_content"
  169.         android:layout_height="wrap_content"
  170.         android:layout_alignParentTop="true" />
  171.  
  172.     <Spinner
  173.         android:id="@+id/spinnerValue1"
  174.         android:layout_marginLeft="150dp"
  175.         android:layout_width="wrap_content"
  176.         android:layout_height="wrap_content"
  177.         android:layout_below="@+id/spinnerCategories"
  178.         android:layout_alignParentLeft="true"
  179.         android:layout_alignParentStart="true"/>
  180.  
  181.     <Spinner
  182.         android:id="@+id/spinnerValue2"
  183.         android:layout_marginLeft="150dp"
  184.         android:layout_width="wrap_content"
  185.         android:layout_height="wrap_content"
  186.         android:layout_below="@+id/spinnerValue1"
  187.         android:layout_alignParentLeft="true"
  188.         android:layout_alignParentStart="true"/>
  189.  
  190.     <EditText
  191.         android:id="@+id/inputValue"
  192.         android:layout_width="wrap_content"
  193.         android:layout_height="wrap_content"
  194.         android:inputType="numberDecimal"
  195.         android:ems="10"
  196.         android:layout_alignTop="@+id/spinnerValue1"
  197.         android:layout_alignParentLeft="true"
  198.         android:layout_alignParentStart="true" />
  199.  
  200.     <TextView
  201.         android:id="@+id/textResult"
  202.         android:text="Large Text"
  203.         android:layout_width="wrap_content"
  204.         android:layout_height="wrap_content"
  205.         android:textAppearance="?android:attr/textAppearanceLarge"
  206.         android:layout_below="@+id/spinnerValue2"
  207.         android:layout_alignRight="@+id/inputValue"
  208.         android:layout_alignEnd="@+id/inputValue"
  209.         android:layout_marginRight="26dp"
  210.         android:layout_marginTop="77dp" />
  211.  
  212. </RelativeLayout>
  213.  
  214. strings.xml
  215. <?xml version="1.0" encoding="utf-8"?>
  216. <resources>
  217.  
  218.     <string name="app_name">testapp</string>
  219.     <string name="action_settings">Settings</string>
  220.  
  221.     <string-array name="spinnerCategoriesList">
  222.         <item>Temperature</item>
  223.         <item>Length</item>
  224.         <item>Volume</item>
  225.         <item>Weight</item>
  226.     </string-array>
  227. </resources>
Advertisement
Add Comment
Please, Sign In to add comment