2016-12-08 4 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

귀하의 질문은 너무 광범위 도움이되기를 바랍니다. 분명히 코드는 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(""); 

     } 
    } 

} 

}