2012-12-05 44 views
1

我想要實現在Android中兩個不同的微調,微調有不同的數據集如何實現不同的項目列表和不同的動作上點擊的多次微調在同一活動

這是隨着年齡的微調,即採用與所有年齡範圍定義字符串數組(ES 18-2019-21等)

<Spinner 
     android:id="@+id/spAge" 
     android:layout_width="match_parent" 
     android:layout_height="35dp" 
     android:entries="@array/age_array" 
     tools:listitem="@android:layout/simple_spinner_item/> 

這是隨性的微調,即只顯示兩個項目

<Spinner 
     android:id="@+id/spSex" 
     android:layout_width="match_parent" 
     android:layout_height="35dp" 
     android:entries="@array/sex_array" 
     tools:listitem="@android:layout/simple_spinner_item /> 

對於每個選定的項目我的活動應該設置相關的選定項目值的兩個對象:

String selectedAge; 
String selectedItem; 

我所看到的樣品不包含不同的多個微調項目設置和對所選項目的不同操作,我不知道如何解決問題。

+0

我曾試圖按照教程爲 http://www.mkyong.com/android/android-spinner-drop-down-list-exa Mple/ 但是我沒有足夠的信息來允許我從我的角度來看,在描述 – AndreaF

+0

的活動中配置兩個微調,我甚至不能想象這個問題。如果你知道如何做一個微調器,你爲什麼不能爲另一個做呢?發佈你的java代碼並解釋你想要發生但沒有發生的事情會非常有幫助。 – mango

回答

1

試試這個

ArrayAdapter<CharSequence> adapterAge; 
ArrayAdapter<CharSequence> adapterSex; 

String[] AgeArr = {"18-20", "19-21"}; 
String[] sexArr = {"male", "female"}; 

Spinner ageDrp =(Spinner)findViewById(R.id.spAge); 
Spinner sex1Drp =(Spinner)findViewById(R.id.spSex); 

adapterAge = new ArrayAdapter<CharSequence>(this,android.R.layout.simple_spinner_item,AgeArr); 
adapterAge.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
ageDrp.setAdapter(adapterAge); 

adapterSex=  new ArrayAdapter<CharSequence>(this,android.R.layout.simple_spinner_item,sexArr); 
adapterSex.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
sexDrp.setAdapter(adapterSex); 

String selectedAge = ageDrp.getSelectedItem().toString(); 
String selectedSex = sexDrp.getSelectedItem().toString(); 
System.out.println(selectedAge+" "+selectedSex);// check the output in logcat 
+0

感謝您的回答。 你能否澄清我如何使用此代碼將選定項目設置爲字符串selectedAge和字符串selectedSex? – AndreaF

+0

@AndreaF,檢查編輯的答案 –

7

編寫代碼如下做選擇的項目不同的動作。

spinner1.setOnItemSelectedListener(this); 
    spinner2.setOnItemSelectedListener(this); 
    public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, 
     long arg3) { 
    // TODO Auto-generated method stub 
    switch(arg0.getId()){ 
      case R.id.spAge : 
        //Your Action Here. 
        break; 
      case R.id.spSex : 
        //Your Another Action Here. 
      break; 
      } 
} 
0

試試這個方法

spinner1 = (Spinner) findViewById(R.id.spinner); 
spinner2 = (Spinner) findViewById(R.id.highschoolspinner); 

List<String> categories = new ArrayList<String>(); 
    categories.add("Qualification"); 
    categories.add("High School"); 
    categories.add("Higher Secondary/PUC"); 
    categories.add("Diploma"); 
    categories.add("Degree"); 
    categories.add("Master Degree"); 


List<String> list = new ArrayList<String>(); 
     list.add("Plus One"); 
     list.add("Plus Two"); 


ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
R.layout.spinnertext, categories); 
    adapter.setDropDownViewResource(android.R.layout.select_dialog_item); 
    spinner.setAdapter(adapter); 


ArrayAdapter<String> dataAdapter12 = new ArrayAdapter<String>(this, 
R.layout.spinnertext, list); 



dataAdapter12.setDropDownViewResource(android.R.layout. 
simple_spinner_dropdown_item); 

dataAdapter12.notifyDataSetChanged(); 
highschool.setAdapter(dataAdapter12) 

已經習慣自定義適配器加載數據,你可以使用內置的適配器一樣

ArrayAdapter dataAdapter11 = new ArrayAdapter(this, 
android.R.layout.simple_list_item_1, list); 
相關問題