4

我想在Android中实现两个不同的微调器,微调器有不同的数据集

这是具有年龄的微调器,它使用具有所有年龄范围(es 18-20、19-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;

我看到的示例不包含多个微调器,其中包含不同的项目集和对所选项目的不同操作,我不知道如何解决问题。

4

3 回答 3

9

如下编写您的代码以对所选项目执行不同的操作。

    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;
            }
}
于 2012-12-05T04:49:04.780 回答
2

试试这个

 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
于 2012-12-05T04:31:45.520 回答
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);
于 2018-02-08T20:15:24.960 回答