2016-02-25 79 views
1

我需要一點幫助,爲Android的這個轉換應用程序。 所以我有填充了這些項目一個微調:選擇一個微調項目來改變文本視圖中的文本?

<string name="action_settings">Settings</string><string-array name="ConversionItems"> 
     <item >Miles to Kilometers</item> 
     <item >Kilometers to Miles</item> 
     <item >Inches to Centimeters</item> 
     <item >Centimeters to Inches</item> 
</string-array> 

,這是一些代碼在我的MainActivity

> conversionspinner.setOnItemSelectedListener(new 
> OnItemSelectedListener() { 
>  @Override 
>  public void onItemSelected(AdapterView<?> parent, View view, int position, 
>    long id) { 
>   // TODO Auto-generated method stub 
>   
>  } 
> 
>  @Override 
>  public void onNothingSelected(AdapterView<?> parent) { 
>   // TODO Auto-generated method stub 
>   return; 
>  } 
>  } 

我想知道的是我怎麼會改變一個TextView的文本時,特定項目被選中。例如,如果選擇「Miles to Kilometers」,則textview1將顯示「Miles」,並且textview2將顯示「Kilometers」。我是一般的Android編程和編程新手,所以簡單的解決方案將非常棒!

謝謝

回答

1

很簡單:

final String CONDITION_1 = "Kilometers"; 
    final String CONDITION_2 = "Miles"; 

    TextView textView1 = (TextView) findViewById(R.id.textView1); 
    int units = 10; 

    private void updateText() { 
     String spinnerState = conversionspinner.getSelectedItem().toString(); 


     if (spinnerState.equalsIgnoreCase("")) { 
      textView1.setText(""); 

     } else if (spinnerState.equalsIgnoreCase(CONDITION_1)){ 
      //do appropriate unit conversion: 
      units = units * (8/5); 
      textView1.setText(String.valueOf(units) + spinnerState); 

     } else if (spinnerState.equalsIgnoreCase(CONDITION_2)) { 
      units = units * (5/8); 
      textView1.setText(String.valueOf(units) + spinnerState); 
     } 
    } 

conversionspinner.setOnItemSelectedListener(new OnItemSelectedListener() { 
    @Override 
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
      updateText(); 

    }); 
1

你可以做這樣的事情

conversionspinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
     @Override 
     public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
      //position will tell you which position is selected 
      // in your array index 0 - <item >Miles to Kilometers</item> 
      //    index 1 - <item >Kilometers to Miles</item> 
      //    index 2 - <item >Inches to Centimeters</item> 
      //    index 3 - <item >Centimeters to Inches</item> 

      switch(position){ 
       case 0: 
        textView1.settext("Miles"); 
        textView2.settext("Kilometers"); 
        break; 
       case 1: 
        textView1.settext("Kilometer"); 
        textView2.settext("Miles"); 
        break; 
       case 2: 
        textView1.settext("Inches"); 
        textView2.settext("Centimeter"); 
        break; 
       case 3: 
        textView1.settext("Centimeter"); 
        textView2.settext("Inches"); 
        break; 
      } 


     } 

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

     } 

     }); 

希望幫助!

相關問題