Android-基于第一个微调器选择的第二个微调器项的控制列表

Android-基于第一个微调器选择的第二个微调器项的控制列表,android,Android,我在我的应用程序中使用了两个微调器,第一个微调器是讲师数组,第二个微调器是课程数组 这是第一spiner中json的输出: 阿迪·哈利姆、范妮、因达,[…] 对于第二个微调器输出,如下所示: 移动开发,面向对象编程,[…] 我的问题是,当第一个微调器已经选择“讲师”时,如何控制第二个微调器列表 例如: 当第一个微调器选择ardi halim时,第二个微调器会给出一个列表 移动开发与面向对象技术 当第一个微调器选择fanny时,第二个微调器仅提供移动开发列表 我可以使用以下代码使用setSelec

我在我的应用程序中使用了两个微调器,第一个微调器是讲师数组,第二个微调器是课程数组

这是第一spiner中json的输出: 阿迪·哈利姆、范妮、因达,[…]

对于第二个微调器输出,如下所示: 移动开发,面向对象编程,[…]

我的问题是,当第一个微调器已经选择“讲师”时,如何控制第二个微调器列表

例如:

当第一个微调器选择ardi halim时,第二个微调器会给出一个列表 移动开发与面向对象技术 当第一个微调器选择fanny时,第二个微调器仅提供移动开发列表 我可以使用以下代码使用setSelected控制第二个微调器:

if(text.equals("Fanny")){
                    Toast.makeText(MainActivity.this,"Anda Memilih Dosen Fanny", Toast.LENGTH_SHORT).show();
                    sp2.setAdapter(adapter2);
                    sp2.setSelection(1);
                    sp2.setEnabled(false);
                }
但当有人选择阿迪·哈利姆时,如何在第二个旋转器中添加多个列表

我试着搜索一个有同样问题的人的帖子,但我没有找到答案

你可以这样尝试

制作2个不同的讲座阵列或固定讲座位置,
然后根据第一个微调器的选择,您可以将数组设置为下一个微调器或将位置设置为下一个微调器。

您必须根据第一个微调器的结果创建这样的类来处理第二个微调器

public class Lecturer{
String name;
ArrayList course;
Lecturer(String name,Arraylist course){
this.name= name;
this.course = course;
    }

public String toString(){
return name;
}
}
活跃

ArrayList<Lecturer> lecturerList = new ArrayList<>();
list.add(new Lecturer("ardi halim",<courses list for ardi halim>));
list.add(new Lecturer("fanny",<courses list for fanny>));

set lecturerList for 1st spinner
then
spinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
        ArrayList courselist = ((Lecturer)spinner1.getSelectedItem()).course;
                set courselist for spinner2 adapter
            }

            @Override
            public void onNothingSelected(AdapterView<?> parent) {

            }
        });

所以不可能为2个或更多的列表添加getSelectedItem?使用if-else语句就再简单不过了,先生?我已经阅读了有关getSelectionItem按位置显示列表的内容,是否可以使用?如果我正确理解您的问题。。在spinner1 onItemSelected方法中,您可以调用“spinner1.getSelectedItemPosition”,通过使用if-else或switch,为第二个适配器设置阵列,但这不是最佳解决方案HHH,这可能是我的另一个解决方案,感谢您的建议,我将尝试您的答案和建议,