我在我的应用中使用了2个微调器,第一个微调器是lecturer
的数组,第二个微调器是courses
的数组,
这是第一个spiner中json的输出: ardi halim,fanny,indah,[...]
并且对于第二个微调器输出看起来像: 移动开发,面向对象编程,[...]
我的问题是当第一个微调器已经选择`讲师?
时如何控制第二个微调器列表示例:
我可以使用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
时,如何在第二个微调器中添加多个列表?
我已经尝试过发帖找到有同样问题的人,但我找不到答案
答案 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) {
}
});