Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.example.testapp.app;
- import android.support.v7.app.ActionBarActivity;
- import android.os.Bundle;
- import android.view.Menu;
- import android.view.MenuItem;
- import android.view.View;
- import android.widget.AdapterView;
- import android.widget.AdapterView.OnItemSelectedListener;
- import android.widget.Spinner;
- import android.widget.ArrayAdapter;
- import android.widget.TextView;
- import android.widget.EditText;
- import android.text.TextWatcher;
- import android.text.Editable;
- public class MainActivity extends ActionBarActivity implements TextWatcher {
- private TextView textResult;
- private EditText inputValue;
- private Spinner spinnerCategories, spinnerValue1, spinnerValue2;
- private Unit[] spinnerTemperatureUnits = {
- new Unit("Celsius", 0),
- new Unit("Kelvin", 0),
- new Unit("Fahrenheit", 0)
- };
- 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)
- };
- private Unit[] spinnerVolumeUnits = {
- new Unit("Litres", 1),
- new Unit("Cubic Meters", 0),
- new Unit("Cubic Kilometres", 0),
- new Unit("Gallons", 3.78541f)
- };
- private Unit[] spinnerWeightUnits = {
- new Unit("Kilos", 1),
- new Unit("Grams", 0.001f),
- new Unit("Tonnes", 1000),
- new Unit("Pounds", 0.453592f)
- };
- private int catNumber, fromNumber, toNumber;
- private void fillList(Spinner spinner, Unit[] list) {
- String[] names = new String[list.length];
- for (int i = 0; i < list.length; i++) names[i] = list[i].getName();
- spinner.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, names));
- }
- private void updateCategory() {
- catNumber = spinnerCategories.getSelectedItemPosition();
- switch (catNumber) {
- case 0: // Temperature
- fillList(spinnerValue1, spinnerTemperatureUnits);
- fillList(spinnerValue2, spinnerTemperatureUnits);
- spinnerValue1.setSelection(0); // Celsius
- spinnerValue2.setSelection(2); // Fahrenheit
- break;
- case 1: // Length
- fillList(spinnerValue1, spinnerLengthUnits);
- fillList(spinnerValue2, spinnerLengthUnits);
- spinnerValue1.setSelection(2); // Metres
- spinnerValue2.setSelection(5); // Feet
- break;
- case 2: // Volume
- fillList(spinnerValue1, spinnerVolumeUnits);
- fillList(spinnerValue2, spinnerVolumeUnits);
- spinnerValue1.setSelection(0); // Litres
- spinnerValue2.setSelection(3); // Gallons
- break;
- case 3: // Weight
- fillList(spinnerValue1, spinnerWeightUnits);
- fillList(spinnerValue2, spinnerWeightUnits);
- spinnerValue1.setSelection(0); // Kilos
- spinnerValue2.setSelection(3); // Pounds
- break;
- }
- updateValues();
- }
- private void updateValues() {
- }
- @Override
- public void afterTextChanged(Editable editable) {
- String inputString = inputValue.getText().toString();
- double result = 0, input = Double.parseDouble(inputString);
- /*fromNumber = spinnerValue1.getSelectedItemPosition();
- toNumber = spinnerValue2.getSelectedItemPosition();
- switch (catNumber) {
- case 1: result = (input * spinnerLengthUnits[fromNumber].getRatio()) / spinnerLengthUnits[toNumber].getRatio(); break;
- case 2: result = (input * spinnerVolumeUnits[fromNumber].getRatio()) / spinnerVolumeUnits[toNumber].getRatio(); break;
- case 3: result = (input * spinnerWeightUnits[fromNumber].getRatio()) / spinnerWeightUnits[toNumber].getRatio(); break;
- }*/
- textResult.setText(Double.toString(input));
- }
- @Override
- public void onTextChanged(CharSequence a, int b, int c, int d) {}
- @Override
- public void beforeTextChanged(CharSequence a, int b, int c, int d) {}
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- inputValue = (EditText) findViewById(R.id.inputValue);
- textResult = (TextView) findViewById(R.id.textResult);
- spinnerCategories = (Spinner) findViewById(R.id.spinnerCategories);
- spinnerValue1 = (Spinner) findViewById(R.id.spinnerValue1);
- spinnerValue2 = (Spinner) findViewById(R.id.spinnerValue2);
- spinnerCategories.setOnItemSelectedListener(new OnItemSelectedListener() {
- @Override
- public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {updateCategory();}
- @Override
- public void onNothingSelected(AdapterView<?> arg0) {}
- });
- spinnerValue1.setOnItemSelectedListener(new OnItemSelectedListener() {
- @Override
- public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {updateValues();}
- @Override
- public void onNothingSelected(AdapterView<?> arg0) {}
- });
- spinnerValue2.setOnItemSelectedListener(new OnItemSelectedListener() {
- @Override
- public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {updateValues();}
- @Override
- public void onNothingSelected(AdapterView<?> arg0) {}
- });
- }
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- // Inflate the menu; this adds items to the action bar if it is present.
- getMenuInflater().inflate(R.menu.main, menu);
- return true;
- }
- @Override
- public boolean onOptionsItemSelected(MenuItem item) {
- // Handle action bar item clicks here. The action bar will
- // automatically handle clicks on the Home/Up button, so long
- // as you specify a parent activity in AndroidManifest.xml.
- int id = item.getItemId();
- if (id == R.id.action_settings) {
- return true;
- }
- return super.onOptionsItemSelected(item);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment