如何在同一活动中实现具有不同项目列表和不同点击操作的多个微调器



我想在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 />

对于每个选定项,my 活动应将关联的选定项值设置为两个对象:

String selectedAge;
String selectedItem;

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

编写

代码,如下所示,对所选项目执行不同的操作。

    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;
            }
}

试试这个

 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

尝试此方法

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);

最新更新