2016-12-08 6 views
-1

Я пытаюсь сделать приложение для конвертера длины, и мое замешательство заключается в том, как я могу выполнить свою работу для преобразования из одного устройства в другое устройство с использованием двух прядильщиков и кнопки расчета? Проблема, которую я имею, заключается в том, что я не могу понять, как преобразовать устройство в выпадающий список с одного счетчика на другой блок во втором счетчике. Мне также нужно отобразить ответ после ввода пользователем номера и выбора единиц из списка.преобразователь длины android studio

Это мой файл макета моей основной деятельности

<?xml version="1.0" encoding="utf-8"?> 
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:id="@+id/activity_main" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
tools:context="com.example.unitconverter.MainActivity"> 

<Button 
    android:text="WEIGHT" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerVertical="true" 
    android:onClick="" 
    android:layout_below="@+id/lengthButton" 
    android:layout_alignRight="@+id/lengthButton" 
    android:layout_alignEnd="@+id/lengthButton" 
    android:id="@+id/weightButton" 
    tools:ignore="HardcodedText" /> 

<Button 
    android:text="LENGTH" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/lengthButton" 
    android:layout_marginTop="164dp" 
    android:layout_alignParentTop="true" 
    android:layout_centerHorizontal="true" 
    tools:ignore="HardcodedText" /> 

<TextView 
    android:text="Unit Converter" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="76dp" 
    android:id="@+id/textView" 
    android:textSize="36sp" 
    android:textColor="@android:color/background_dark" 
    android:layout_alignParentTop="true" 
    android:layout_centerHorizontal="true" /> 

<Button 
    android:text="VOLUME" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/volumeButton" 
    tools:ignore="HardcodedText" 
    android:layout_below="@+id/weightButton" 
    android:layout_alignLeft="@+id/weightButton" 
    android:layout_alignStart="@+id/weightButton" /> 

<Button 
    android:text="TEMPERATURE" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/temperatureButton" 
    tools:ignore="HardcodedText" 
    android:layout_below="@+id/volumeButton" 
    android:layout_centerHorizontal="true" /> 

Это ява часть моей основной деятельности

  public class MainActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 



     Button lengthbtn = (Button) findViewById(R.id.lengthButton); 

     lengthbtn.setOnClickListener(new OnClickListener(){ 
      public void onClick(View v){ 
       startActivity(new Intent(MainActivity.this, lengthActivity.class)); 
      } 
     }); 

     Button weightbtn = (Button) findViewById(R.id.weightButton); 

     weightbtn.setOnClickListener(new OnClickListener(){ 
      public void onClick(View v){ 
       startActivity(new Intent(MainActivity.this, weightActivity.class)); 
      } 
     }); 

     Button volumebtn = (Button) findViewById(R.id.volumeButton); 

     volumebtn.setOnClickListener(new OnClickListener(){ 
      public void onClick(View v){ 
       startActivity(new Intent(MainActivity.this,volumeActivity.class)); 
      } 
     }); 

     Button temperaturebtn = (Button) findViewById(R.id.temperatureButton); 

     temperaturebtn.setOnClickListener(new OnClickListener(){ 
      public void onClick(View v){ 
       startActivity(new Intent(MainActivity.this,temperatureActivity.class)); 
      } 
     }); 

    } 
} 

Это моя раскладка длина файл

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:id="@+id/activity_length" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
tools:context="com.example.unitconverter.lengthActivity"> 

<Spinner 
    android:layout_width="200dp" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="20dp" 
    android:id="@+id/lengthList2" 
    android:textAlignment="center" 
    android:layout_marginLeft="11dp" 
    android:layout_marginStart="11dp" 
    android:layout_below="@+id/convertToTextView" 
    android:layout_alignLeft="@+id/convertToTextView" 
    android:layout_alignStart="@+id/convertToTextView" /> 

<TextView 
    android:text="Length Converter" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textAppearance="@style/TextAppearance.AppCompat.Display2" 
    android:textSize="36sp" 
    android:textAlignment="inherit" 
    android:id="@+id/lengthTextView" 
    android:layout_alignParentTop="true" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" 
    android:layout_marginLeft="25dp" 
    android:layout_marginStart="25dp" /> 

<Button 
    android:text="Calculate" 
    android:id="@+id/calculateButton" 
    android:layout_width="100dp" 
    android:layout_height="45dp" 
    android:layout_marginTop="53dp" 
    android:layout_below="@+id/lengthList2" 
    android:layout_alignRight="@+id/lengthList2" 
    android:layout_alignEnd="@+id/lengthList2" 
    android:layout_marginRight="23dp" 
    android:layout_marginEnd="23dp" 
    android:textAlignment="center" /> 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/resultTextView" 
    android:text="Result " 
    android:textSize="20sp" 
    android:layout_marginBottom="34dp" 
    android:layout_alignParentBottom="true" 
    android:layout_alignLeft="@+id/lengthList2" 
    android:layout_alignStart="@+id/lengthList2" /> 

<TextView 
    android:text="Convert to:" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textSize="24sp" 
    android:layout_marginTop="114dp" 
    android:id="@+id/convertToTextView" 
    android:layout_below="@+id/convertEditText" 
    android:layout_alignLeft="@+id/convertEditText" 
    android:layout_alignStart="@+id/convertEditText" /> 

<EditText 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:inputType="textPersonName" 
    android:text="Convert from" 
    android:ems="10" 
    android:id="@+id/convertEditText" 
    android:layout_below="@+id/lengthTextView" 
    android:layout_alignLeft="@+id/lengthTextView" 
    android:layout_alignStart="@+id/lengthTextView" 
    android:layout_marginLeft="11dp" 
    android:layout_marginStart="11dp" 
    android:layout_marginTop="52dp" /> 

<Spinner 
    android:layout_height="wrap_content" 
    android:entries="@array/lengthList" 
    android:id="@+id/lengthList" 
    android:layout_width="200dp" 
    android:layout_marginTop="13dp" 
    android:layout_below="@+id/convertEditText" 
    android:layout_centerHorizontal="true" /> 

Это то, что у меня есть для моего основного файла длиной деятельности. Кто-нибудь может мне помочь, пожалуйста!

public class lengthActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate (saved Instance State); 
     setContentView(R.layout.activity_length); 

     final Spinner group = (Spinner)findViewById(R.id.lengthList); 
     final Spinner group2 = (Spinner)findViewById(R.id.lengthList2); 

     Button button = (Button)findViewById(R.id.calculateButton); 

     button.setOnClickListener(new View.OnClickListener() { 
      final TextView result = ((TextView) 



      @Override 
      public void onClick(View v) { 



      } 
+4

Ваш вопрос является слишком широким. Очевидно, что ваш код должен будет получать числовые значения из элементов управления пользовательского интерфейса; затем определите, какой тип обращения требуется; выполнить вычисления, а затем отобразить результат. Вы действительно ожидаете, что мы выкопаем все ваши существующие вещи, чтобы понять, чего не хватает на вашем пути, чтобы добраться туда? – GhostCat

+0

Вам нужно прослушиватель выбора на счетчике, чтобы узнать, что вы выбрали. –

+0

Мне просто нужно понять, что мне нужно в моем основном файле длины активности. – kay19

ответ

0

привет я создал конвертер длины .. я надеюсь, что это помогает

//java file 

public class LengthConverter{ 

EditText val; 
TextView ans, ftv; 
Spinner from, to; 
Integer positionFrom, positionTO, res; 
Button convert; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_length_converter); 

    val = (EditText)findViewById(R.id.editText2); 

    ans = (TextView)findViewById(R.id.Answer); 

    from = (Spinner)findViewById(R.id.SpinnerFrom); 
    to = (Spinner)findViewById(R.id.SpinnerTo); 

    convert = (Button)findViewById(R.id.convert); 


//  positionFrom = from.getSelectedItemPosition(); 
//  positionTO = to.getSelectedItemPosition(); 


    List<String> unitlength = new ArrayList<String>(); 

    unitlength.add("Meter"); 
    unitlength.add("Centimeter"); 
    unitlength.add("Kilometer"); 
    unitlength.add("Miles"); 
    unitlength.add("Foot"); 
    unitlength.add("Inches"); 
    unitlength.add("Yard"); 

    ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, unitlength); 
    dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    from.setAdapter(dataAdapter); 

    ArrayAdapter<String> unit = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, unitlength); 
    unit.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    to.setAdapter(unit); 

    from.setOnItemSelectedListener(this); 

    to.setOnItemSelectedListener(this); 


    convert.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      method(v); 
     } 
    }); 
} 

@Override 
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 

    parent.getItemAtPosition(position); 

    switch (parent.getId()) 
    { 
     case R.id.SpinnerFrom: 
      from.setSelection(position); 
      positionFrom = from.getSelectedItemPosition(); 
      Log.e("from selected position:", String.valueOf(positionFrom)); 
      break; 

     case R.id.SpinnerTo: 
      to.setSelection(position); 
      positionTO = to.getSelectedItemPosition(); 
      Log.e("to selected position:", String.valueOf(positionTO)); 
      break; 
    } 

} 


@Override 
public void onNothingSelected(AdapterView<?> parent) { 

} 

public void method(View view) 
{ 

    double value = Double.parseDouble(val.getText().toString()); 
    double res; 
    double hun = 100; 

    Log.e("from value in method", String.valueOf(positionFrom)); 

    if (positionFrom == 0) 
    { 
     if (positionTO == 0) 
     { 
      val.setText(""); 
      ans.setText(""); 
     } 

     if (positionTO == 1) 
     { 
      res = value * hun; 
      ans.setText(Double.toString(res)); 
     } 

     if (positionTO == 2) 
     { 
      res = value * 1000; 
      ans.setText(Double.toString(res)); 
     } 

     if (positionTO == 3) 
     { 
      res = value * 0.000621371; 
      ans.setText(Double.toString(res)); 
     } 

     if (positionTO == 4) 
     { 
      res = value * 3.28084; 
      ans.setText(Double.toString(res)); 
     } 

     if (positionTO == 5) 
     { 
      res = value * 39.3701; 
      ans.setText(Double.toString(res)); 
     } 

     if (positionTO == 6) 
     { 
      res = value * 1.09361; 
      ans.setText(Double.toString(res)); 
     } 
    } 

    if (positionFrom == 1) 
    { 
     if (positionTO == 0) 
     { 
      res = value/100; 
      ans.setText(Double.toString(res)); 

     } 

     if (positionTO == 1) 
     { 
      val.setText(""); 
      ans.setText(""); 
     } 

     if (positionTO == 2) 
     { 
      res = value/10000; 
      ans.setText(Double.toString(res)); 
     } 

     if (positionTO == 3) 
     { 
      res = value * 6.2137e-6; 
      ans.setText(Double.toString(res)); 
     } 

     if (positionTO == 4) 
     { 
      res = value * 0.0328084; 
      ans.setText(Double.toString(res)); 
     } 

     if (positionTO == 5) 
     { 
      res = value * 0.393701; 
      ans.setText(Double.toString(res)); 
     } 

     if (positionTO == 6) 
     { 
      res = value * 0.0109361; 
      ans.setText(Double.toString(res)); 
     } 
    } 

    if (positionFrom == 2) 
    { 
     if (positionTO == 0) 
     { 
      res = value * 1000; 
      ans.setText(Double.toString(res)); 

     } 

     if (positionTO == 1) 
     { 
      res = value * 100000; 
      ans.setText(Double.toString(res)); 
     } 

     if (positionTO == 2) 
     { 
      val.setText(""); 
      ans.setText(""); 
     } 

     if (positionTO == 3) 
     { 
      res = value * 0.621371; 
      ans.setText(Double.toString(res)); 
     } 

     if (positionTO == 4) 
     { 
      res = value * 3280.84; 
      ans.setText(Double.toString(res)); 
     } 

     if (positionTO == 5) 
     { 
      res = value * 39370.1; 
      ans.setText(Double.toString(res)); 
     } 

     if (positionTO == 6) 
     { 
      res = value * 1093.61; 
      ans.setText(Double.toString(res)); 
     } 
    } 

    if (positionFrom == 3) 
    { 
     if (positionTO == 0) 
     { 
      res = value * 1609.34; 
      ans.setText(Double.toString(res)); 

     } 

     if (positionTO == 1) 
     { 
      res = value * 160934; 
      ans.setText(Double.toString(res)); 
     } 

     if (positionTO == 2) 
     { 
      res = value * 1.60934; 
      ans.setText(Double.toString(res)); 

     } 

     if (positionTO == 3) 
     { 
      val.setText(""); 
      ans.setText(""); 
     } 

     if (positionTO == 4) 
     { 
      res = value * 5280; 
      ans.setText(Double.toString(res)); 
     } 

     if (positionTO == 5) 
     { 
      res = value * 63360 ; 
      ans.setText(Double.toString(res)); 
     } 

     if (positionTO == 6) 
     { 
      res = value * 1760; 
      ans.setText(Double.toString(res)); 
     } 
    } 

    if (positionFrom == 4) 
    { 
     if (positionTO == 0) 
     { 
      res = value * 0.3048; 
      ans.setText(Double.toString(res)); 

     } 

     if (positionTO == 1) 
     { 
      res = value * 30.48; 
      ans.setText(Double.toString(res)); 
     } 

     if (positionTO == 2) 
     { 
      res = value * 0.0003048; 
      ans.setText(Double.toString(res)); 

     } 

     if (positionTO == 3) 
     { 

      res = value * 0.000189394; 
      ans.setText(Double.toString(res)); 

     } 

     if (positionTO == 4) 
     { 
      val.setText(""); 
      ans.setText(""); 
     } 

     if (positionTO == 5) 
     { 
      res = value * 12 ; 
      ans.setText(Double.toString(res)); 
     } 

     if (positionTO == 6) 
     { 
      res = value * 0.333333; 
      ans.setText(Double.toString(res)); 
     } 
    } 

    if (positionFrom == 5) 
    { 
     if (positionTO == 0) 
     { 
      res = value * 0.0254; 
      ans.setText(Double.toString(res)); 

     } 

     if (positionTO == 1) 
     { 
      res = value * 2.54; 
      ans.setText(Double.toString(res)); 
     } 

     if (positionTO == 2) 
     { 
      res = value * 2.54e-5; 
      ans.setText(Double.toString(res)); 

     } 

     if (positionTO == 3) 
     { 
      res = value * 1.5783e-5; 
      ans.setText(Double.toString(res)); 

     } 

     if (positionTO == 4) 
     { 
      res = value * 0.0833333 ; 
      ans.setText(Double.toString(res)); 
     } 

     if (positionTO == 5) 
     { 
      val.setText(""); 
      ans.setText(""); 

     } 

     if (positionTO == 6) 
     { 
      res = value * 0.0277778; 
      ans.setText(Double.toString(res)); 
     } 
    } 

    if (positionFrom == 6) 
    { 
     if (positionTO == 0) 
     { 
      res = value * 0.9144; 
      ans.setText(Double.toString(res)); 

     } 

     if (positionTO == 1) 
     { 
      res = value * 91.44; 
      ans.setText(Double.toString(res)); 
     } 

     if (positionTO == 2) 
     { 
      res = value * 0.0009144; 
      ans.setText(Double.toString(res)); 

     } 

     if (positionTO == 3) 
     { 

      res = value * 0.000568182; 
      ans.setText(Double.toString(res)); 

     } 

     if (positionTO == 4) 
     { 
      res = value * 3; 
      ans.setText(Double.toString(res)); 
     } 

     if (positionTO == 5) 
     { 
      res = value * 36 ; 
      ans.setText(Double.toString(res)); 
     } 

     if (positionTO == 6) 
     { 
      val.setText(""); 
      ans.setText(""); 

     } 
    } 

} 

}