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

时间:2016-11-07 09:26:08

标签: android

我在我的应用中使用了2个微调器,第一个微调器是lecturer的数组,第二个微调器是courses的数组,

这是第一个spiner中json的输出:     ardi halim,fanny,indah,[...]

并且对于第二个微调器输出看起来像:     移动开发,面向对象编程,[...]

我的问题是当第一个微调器已经选择`讲师?

时如何控制第二个微调器列表

示例:

  1. 当第一个微调器选择 ardi halim 时,第二个微调器给出一个列表 移动开发和OOP
  2. 当第一个微调器选择 fanny 时,第二个微调器仅列出移动开发
  3. 我可以使用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);
                    }
    

    但是当有人选择ardi halim时,如何在第二个微调器中添加多个列表?

    我已经尝试过发帖找到有同样问题的人,但我找不到答案

2 个答案:

答案 0 :(得分:0)

你可以这样试试,

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

答案 1 :(得分:0)

你必须按照你的第一个微调器结果

来制作这样的类来处理第二个微调器
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) {

            }
        });