【问题标题】:How to Implements multiple spinner with different item list and different action on click in the same Activity如何在同一个活动中实现具有不同项目列表和不同操作的多个微调器
【发布时间】:2018-02-09 04:15:24
【问题描述】:

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

这是带有年龄的微调器,它使用具有所有年龄范围(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/>

这是带有性别的微调器,仅显示 MaleFemale

这两个项目
 <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;

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

【问题讨论】:

  • 我已尝试以mkyong.com/android/android-spinner-drop-down-list-example 的身份遵循教程,但没有足够的信息让我可以在描述的同一活动中配置两个微调器
  • 从我的角度来看,我什至无法想象这个问题。如果你知道如何为一个微调器做你想做的事,为什么你不能为另一个做呢?发布您的 Java 代码并解释您想要发生但没有发生的事情会很有帮助。

标签: android android-layout android-spinner


【解决方案1】:

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

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

【讨论】:

    【解决方案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
    

    【讨论】:

    • 感谢您的回答。您能否澄清一下如何使用此代码将所选项目设置为 String selectedAge 和 String selectedSex?
    【解决方案3】:

    试试这个方法

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

    【讨论】:

      猜你喜欢
      • 2019-08-13
      • 2016-12-02
      • 2014-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多