如何绑定逻辑进行转换?

时间:2014-02-17 15:21:57

标签: java android eclipse unit-conversion

我正在android中构建一个UnitConverter应用程序。创建旋转器适配器绑定它们的一切都完成了。现在主要部分仍然是放置逻辑。我该如何添加它们?喜欢来自" From"旋转器第二个从"到"旋转器"分钟"选中然后放入此逻辑并显示输出。如果" Meter"被选中并且" Mile"然后选择然后放入该逻辑并显示输出。 `

package com.hasibshovon.unitconverter;

import android.app.Activity;
import android.os.Bundle;
import android.preference.SwitchPreference;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.Switch;

public class MainActivity extends Activity {
    // data source
    private static String[] types = { "Angle", "Area", "Bits&Bytes", "Density",
            "Electric Current", "Energy", "Force", "Length", "Mass", "Power",
            "Pressure", "Speed", "Temperature", "Time", "Volume" };

    private static String[] AngleUnits = { "Degree", "Radian", "Grad", "Gon",
            "Minute", "Second", "SIgn", "Mil", "Revolution", "Circle", "Turn",
            "Quadrant", "Right", "Triangle", "Sextant" };

    private static String[] AreaUnits = { "SquareMeter", "SquareKilometer",
            "SquareHectometer", "SquareDekameter", "SquareDecimeter",
            "SquareCentimeter", "SquareMilimeter", "SquareMicrometer",
            "SquareNanometer", "Hectare", "SquareMile", "SquareYard",
            "SquareFoot", "SquareInch", "Acre" };

    private static String[] BitsBytesUnits = { "bit", "byte", "kilobit",
            "kilobyte", "megabit", "megabyte", "gigabit", "gigabyte",
            "terabit", "terabyte", "petabit", "petabyte", "exabit", "exabyte" };

    private static String[] DensityUnits = { "kilogram/cubicmeter",
            "kilogram/cubiccentimeter", "gram/cubicmeter",
            "gram/cubiccentimeter", "gram/cubicmilimeter",
            "miligram/cubicmeter", "miligram/cubiccentimeter",
            "miligram/cubicmilimeter", "exagram/liter", "petagram/liter",
            "teragram/liter", "gigagram/liter", "meggram/liter",
            "kilogram/liter", "hectogram/liter", "decagram/liter",
            "gram/liter", "decigram/liter", "centigram/liter",
            "miligram/liter", "microgram/liter", "nanogram/liter",
            "picogram/liter" };

    private static String[] CurrentUnits = { "ampere", "kiloampere",
            "miliampere", "biot", "abaampere", "stataampere" };

    private static String[] EnergyUnits = { "joule", "gigajoule", "megajoule",
            "kilojoule", "milijoule", "microjoule", "nanojoule", "attojoule" };

    private static String[] ForceUnits = { "newton", "dyne", "joul/meter",
            "joul/centimeter", "gram-force", "kilogram-force", "kip-force",
            "pond", "kilo-pond" };

    private static String[] LengthUnits = { "meter", "exameter", "terameter",
            "petameter", "gigameter", "megameter", "kilometer", "hectometer",
            "dekameter", "decimeter", "centimeter", "milimeter", "micrometer",
            "nanometer", "picometer", "femtometer", "attometer" };

    private static String[] MassUnits = { "gram", "kilogram", "miligram",
            "dalton", "pound", "ounce", "ton", "quarter", "grain" };

    private static String[] PowerUnits = { "watt", "megawatt", "horsepower",
            "kilocalorie", "joul/hour", "kilojoul/hour", "joul/second" };

    private static String[] PressureUnits = { "pascal", "newton/squaremeter",
            "bar", "kilogram-force/squaremeter", "ton-force/squarefoot",
            "poundal/squarefoot", "atmosphere(atm)" };

    private static String[] SpeedUnits = { "meter/second", "kilometer/hour",
            "foot/hour", "yard/hour", "mile/hour", "mile/second", "knot" };

    private static String[] TemperatureUnits = { "kelvin", "celsius",
            "farenheit", "rankine", "reaumur" };

    private static String[] TimeUnits = { "second", "milisecond",
            "microsecond", "nanosecond", "minute", "hour", "day", "week",
            "month", "year", "decade", "century", "millenium" };

    private static String[] VolumeUnits = { "cubicmeter", "cubickilometer",
            "cubiccentimeter", "liter", "cc", "barrel", "cup", "cubicmile",
            "cubicfoot", "cubicyard", "cubicinch", "acre-foot" };

    private Spinner spnUnitTypes;
    private Spinner spnFromUnit;
    private Spinner spnToUnit;
    private EditText etFrom;
    private EditText etTo;

    // adapters
    ArrayAdapter<String> adaptUnittype;
    ArrayAdapter<String> adaptFrom;
    ArrayAdapter<String> adaptTo;

    // private OnItemSelectedListener UnitLisetener;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // spnUnitTypes.setOnItemSelectedListener(UnitLisetener);
        etFrom = (EditText) findViewById(R.id.etConvertFrom);
        etTo = (EditText) findViewById(R.id.etToResult);
        // initialize view
        spnUnitTypes = (Spinner) findViewById(R.id.spnUnitType);
        spnFromUnit = (Spinner) findViewById(R.id.spnFromUnit);
        spnToUnit = (Spinner) findViewById(R.id.spnToUnit);

        // initialize adapter
        adaptUnittype = new ArrayAdapter<String>(MainActivity.this,
                android.R.layout.simple_spinner_item, types);

        // bind adapter and view
        spnUnitTypes.setAdapter(adaptUnittype);
        spnUnitTypes.setOnItemSelectedListener(new OnItemSelectedListener() {

            @Override
            public void onItemSelected(AdapterView<?> arg0, View arg1,
                    int postion, long arg3) {
                if (types[postion].equals("Time")) {

                    adaptFrom = new ArrayAdapter<String>(MainActivity.this,
                            android.R.layout.simple_spinner_item, TimeUnits);
                    adaptTo = new ArrayAdapter<String>(MainActivity.this,
                            android.R.layout.simple_spinner_item, TimeUnits);

                } else if (types[postion].equals("Mass")) {

                    adaptFrom = new ArrayAdapter<String>(MainActivity.this,
                            android.R.layout.simple_spinner_item, MassUnits);
                    adaptTo = new ArrayAdapter<String>(MainActivity.this,
                            android.R.layout.simple_spinner_item, MassUnits);

                } else if (types[postion].equals("Angle")) {

                    adaptFrom = new ArrayAdapter<String>(MainActivity.this,
                            android.R.layout.simple_spinner_item, AngleUnits);
                    adaptTo = new ArrayAdapter<String>(MainActivity.this,
                            android.R.layout.simple_spinner_item, AngleUnits);

                } else if (types[postion].equals("Area")) {

                    adaptFrom = new ArrayAdapter<String>(MainActivity.this,
                            android.R.layout.simple_spinner_item, AreaUnits);
                    adaptTo = new ArrayAdapter<String>(MainActivity.this,
                            android.R.layout.simple_spinner_item, AreaUnits);

                } else if (types[postion].equals("Density")) {

                    adaptFrom = new ArrayAdapter<String>(MainActivity.this,
                            android.R.layout.simple_spinner_item, DensityUnits);
                    adaptTo = new ArrayAdapter<String>(MainActivity.this,
                            android.R.layout.simple_spinner_item, DensityUnits);

                } else if (types[postion].equals("Bits&Bytes")) {

                    adaptFrom = new ArrayAdapter<String>(MainActivity.this,
                            android.R.layout.simple_spinner_item,
                            BitsBytesUnits);
                    adaptTo = new ArrayAdapter<String>(MainActivity.this,
                            android.R.layout.simple_spinner_item,
                            BitsBytesUnits);

                } else if (types[postion].equals("Electric Current")) {

                    adaptFrom = new ArrayAdapter<String>(MainActivity.this,
                            android.R.layout.simple_spinner_item, CurrentUnits);
                    adaptTo = new ArrayAdapter<String>(MainActivity.this,
                            android.R.layout.simple_spinner_item, CurrentUnits);

                } else if (types[postion].equals("Energy")) {

                    adaptFrom = new ArrayAdapter<String>(MainActivity.this,
                            android.R.layout.simple_spinner_item, EnergyUnits);
                    adaptTo = new ArrayAdapter<String>(MainActivity.this,
                            android.R.layout.simple_spinner_item, EnergyUnits);

                } else if (types[postion].equals("Force")) {

                    adaptFrom = new ArrayAdapter<String>(MainActivity.this,
                            android.R.layout.simple_spinner_item, ForceUnits);
                    adaptTo = new ArrayAdapter<String>(MainActivity.this,
                            android.R.layout.simple_spinner_item, ForceUnits);

                } else if (types[postion].equals("Length")) {

                    adaptFrom = new ArrayAdapter<String>(MainActivity.this,
                            android.R.layout.simple_spinner_item, LengthUnits);
                    adaptTo = new ArrayAdapter<String>(MainActivity.this,
                            android.R.layout.simple_spinner_item, LengthUnits);

                } else if (types[postion].equals("Power")) {

                    adaptFrom = new ArrayAdapter<String>(MainActivity.this,
                            android.R.layout.simple_spinner_item, PowerUnits);
                    adaptTo = new ArrayAdapter<String>(MainActivity.this,
                            android.R.layout.simple_spinner_item, PowerUnits);

                } else if (types[postion].equals("Pressure")) {

                    adaptFrom = new ArrayAdapter<String>(MainActivity.this,
                            android.R.layout.simple_spinner_item, PressureUnits);
                    adaptTo = new ArrayAdapter<String>(MainActivity.this,
                            android.R.layout.simple_spinner_item, PressureUnits);

                } else if (types[postion].equals("Speed")) {

                    adaptFrom = new ArrayAdapter<String>(MainActivity.this,
                            android.R.layout.simple_spinner_item, SpeedUnits);
                    adaptTo = new ArrayAdapter<String>(MainActivity.this,
                            android.R.layout.simple_spinner_item, SpeedUnits);

                } else if (types[postion].equals("Temperature")) {

                    adaptFrom = new ArrayAdapter<String>(MainActivity.this,
                            android.R.layout.simple_spinner_item,
                            TemperatureUnits);
                    adaptTo = new ArrayAdapter<String>(MainActivity.this,
                            android.R.layout.simple_spinner_item,
                            TemperatureUnits);
                }
                spnFromUnit.setAdapter(adaptFrom);
                spnToUnit.setAdapter(adaptTo);

            }

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

}

0 个答案:

没有答案
相关问题