2014-01-11 20 views
0

嗨我正在做一個轉換器的應用程序(就像當你谷歌「溫度轉換器」),所以我有一個微調使兩個其他微調顯示相同的數組。我知道這裏有代碼,但我還沒有找到一些處理很多不同數組的代碼。例如,我需要一個微調器能夠使另外兩個微調器顯示相同的陣列,但是我有許多不同的陣列(從溫度/長度/質量/速度/體積/面積/時間)圖片兩個spinners依靠一個微調陣列/條目

strings.xml

<string-array name="units"> 
    <item>Temperature</item> 
    <item>Length</item> 
    <item>Mass</item> 
    <item>Speed</item> 
    <item>Volume</item> 
    <item>Area</item> 
    <item>Time</item>  
    </string-array> 

    <string-array name="Temperature"> 
    <item>Celsius</item> 
    <item>Fahrenheit</item>  
    </string-array> 


     <string-array name="Mass"> 
    <item>Metric Ton</item> 
    <item>Kilogram</item> 
    <item>Gram</item> 
    <item>Milligram</item> 
    <item>Pound</item> 
    <item>Ounce</item> 
    </string-array> 

    <string-array name="Length"> 
    <item>Kilometer</item> 
    <item>Meter</item> 
    <item>Centimeter</item> 
    <item>Millimeter</item> 
    <item>Mile</item> 
    <item>Yard</item> 
    <item>Foot</item> 
    <item>Inch</item>   
    </string-array> 

    <string-array name="Speed"> 
    <item>Miles/Hour</item> 
    <item>Feet/Sec</item> 
    <item>Meters/Sec</item> 
    <item>Km/Hour</item> 
    <item>Knot</item> 
    </string-array> 

    <string-array name="Time"> 
    <item>Nanosecond</item> 
    <item>Microsecond</item> 
    <item>Meters/Sec</item> 
    <item>Km/Hour</item> 
    <item>Knot</item> 
    </string-array> 

    <string-array name="Area"> 
    <item>Square km</item> 
    <item>Square meter</item> 
    <item>Square mile</item> 
    <item>Hectare</item> 
    <item>Acre</item> 
    <item>Square yard</item> 
    <item>Square foot</item> 
    <item>Square inch</item> 

    </string-array> 

    <string-array name="Area2"> 
    <item>Square km</item> 
    <item>Square meter</item> 
    <item>Square mile</item> 
    <item>Hectare</item> 
    <item>Acre</item> 
    <item>Square yard</item> 
    <item>Square foot</item> 
    <item>Square inch</item> 

    </string-array> 

佈局XML文件

<Spinner 
    android:id="@+id/selector1" 
    android:layout_width="150dp" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_below="@+id/editText1" /> 

    <Spinner 
    android:id="@+id/spinner_unit" 
    android:layout_width="150dp" 
    android:layout_height="wrap_content" 
    android:layout_alignParentTop="true" 
    android:layout_centerHorizontal="true" 
    android:layout_marginTop="73dp" 
    android:entries="@array/units" /> 

    <Button 
    android:id="@+id/equelsbutton" 
    android:layout_width="80dp" 
    android:layout_height="80dp" 
    android:layout_centerVertical="true" 
    android:layout_toRightOf="@+id/editText1" 
    android:background="@color/clear" 
    android:text="@string/equels" 
    android:textSize="40sp" /> 

<Spinner 
    android:id="@+id/selector2" 
    android:layout_width="150dp" 
    android:layout_height="wrap_content" 
    android:layout_alignParentRight="true" 
    android:layout_alignTop="@+id/selector1" /> 

<TextView 
    android:id="@+id/textView1" 
    android:layout_width="150dp" 
    android:layout_height="wrap_content" 
    android:layout_alignBottom="@+id/editText1" 
    android:layout_alignLeft="@+id/selector2" 
    android:layout_marginLeft="15dp" 
    android:textAppearance="?android:attr/textAppearanceMedium" /> 

Converter_Activity

import android.app.Activity; 
import android.os.Bundle; 
import android.widget.Spinner; 


public class Converter_Activity extends Activity { 

public Spinner spinnerunits; 
public Spinner spinnerpicker1; 
public Spinner spinnerpicker2; 

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

spinnerunits = (Spinner) findViewById(R.id.spinner_unit); 

spinnerpicker1 = (Spinner) findViewById(R.id.selector1); 

spinnerpicker2 = (Spinner) findViewById(R.id.selector2); 



} 

}

感謝

回答

0

嗨,我修改了Converter_Activity.java類。請嘗試使用最新的源代碼。它爲我工作很好。希望它對你有幫助。謝謝。

Converter_Activity.java

import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.AdapterView; 
import android.widget.ArrayAdapter; 
import android.widget.Spinner; 
import android.widget.TextView; 

public class Converter_Activity extends Activity { 
    public static Spinner spinnerunits; 
    public static Spinner spinnerpicker1; 
    public static Spinner spinnerpicker2; 
     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.spinnerlayout); 
     spinnerunits = (Spinner) findViewById(R.id.spinner_unit); 
     spinnerpicker1 = (Spinner) findViewById(R.id.selector1); 
     spinnerpicker2 = (Spinner) findViewById(R.id.selector2); 

     ArrayAdapter <String> arrayUnits = new ArrayAdapter <String> (getBaseContext(),android.R.layout.simple_spinner_item, getResources().getStringArray(R.array.units)); 
     arrayUnits.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     spinnerunits .setAdapter(arrayUnits); 

     spinnerunits.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
      public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) { 
       if(spinnerunits.getSelectedItem().equals("Temperature")) 
      { 
       ArrayAdapter <String> s1 = new ArrayAdapter <String> (getBaseContext(),android.R.layout.simple_spinner_item, getResources().getStringArray(R.array.Temperature)); 
       s1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
       spinnerpicker2.setAdapter(s1); 
       spinnerpicker1.setAdapter(s1); 
      }else if(spinnerunits.getSelectedItem().equals("Mass")) 
      { 
       ArrayAdapter <String> s2 = new ArrayAdapter <String> (getBaseContext(),android.R.layout.simple_spinner_item,getResources().getStringArray(R.array.Mass)); 
       s2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
       spinnerpicker2.setAdapter(s2); 
       spinnerpicker1.setAdapter(s2); 
      } 
      else if(spinnerunits.getSelectedItem().equals("Speed")) 
      { 
       ArrayAdapter <String> s3 = new ArrayAdapter <String> (getBaseContext(),android.R.layout.simple_spinner_item,getResources().getStringArray(R.array.Speed)); 
       s3.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
       spinnerpicker2.setAdapter(s3); 
       spinnerpicker1.setAdapter(s3); 
      } 
      else if(spinnerunits.getSelectedItem().equals("Area")) 
      { 
       ArrayAdapter <String> s4 = new ArrayAdapter <String> (getBaseContext(),android.R.layout.simple_spinner_item,getResources().getStringArray(R.array.Area)); 
       s4.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
       spinnerpicker2.setAdapter(s4); 
       spinnerpicker1.setAdapter(s4); 
      } 
      else if(spinnerunits.getSelectedItem().equals("Time")) 
      { 
       ArrayAdapter <String> s5 = new ArrayAdapter <String> (getBaseContext(),android.R.layout.simple_spinner_item,getResources().getStringArray(R.array.Time)); 
       s5.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
       spinnerpicker2.setAdapter(s5); 
       spinnerpicker1.setAdapter(s5); 
      } 
      } 

      @Override 
      public void onNothingSelected(AdapterView<?> parentView) { 
      // your code here 
      } 
     }); 
    }  
} 

請試試這個代碼,讓我知道。謝謝。

+0

謝謝你,但是當我添加「ListItem選擇事件處理程序」時,我擺脫了所有錯誤,但是當我啓動應用程序並選擇轉換器部分時,它出現錯誤並崩潰。 「我已經在清單中宣佈了這項活動」,但我不確定爲什麼會發生這種情況,因爲沒有任何錯誤。所以,如果你知道並且可以告訴我那將是一團糟。謝謝 – user3184186

+0

餵你添加Converter_Activity.java。請嘗試此代碼並讓我知道。謝謝。 – Jeba

+0

再次感謝我沒有得到任何錯誤信息,但是當我選擇微調器時,它不會影響旋轉器。在代碼中,您還將spinner1作爲選擇器微調器?我想知道你是否按每個姿勢做了這個,因爲我想Spinnerunits選擇要在其他兩個紡紗器上顯示的單位(1/2) – user3184186