2016-12-08 54 views
-1

我想做一個長度轉換器應用程序,我的困惑是如何讓我的工作完成從一個單位轉換爲另一個單位使用兩個spinners和一個計算按鈕?我遇到的問題是我無法弄清楚如何將下拉列表中的單元從一個微調器轉換爲第二個微調器中的另一個單元。我還需要在用戶輸入號碼並從列表中選取單位後顯示答案。長度轉換器android工作室

這是我的主要活動的我的佈局文件

<?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" /> 

這是我的主要活動的java的部分

  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

你提的問題是過於寬泛。顯然,你的代碼將不得不從你的UI控件中獲取數值;然後確定要求什麼樣的轉換;進行計算並顯示結果。你真的希望我們挖掘你現有的所有東西來找出你想要達到的目標嗎? – 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(""); 

     } 
    } 

} 

}