Android 微调器不更新
我有3个微调器,当第一个微调器更新时,第二个和第三个微调器应该更新,但只有第二个微调器更新。这两个检查确实会打印到logcat,但第三个微调器没有更新。如果我注释掉spinner2.setAdapter(),则第三个spinner将更新。如果我更改顺序,使第三个微调器应首先更新,则第二个微调器仍会更新,而第三个微调器不会更新。我哪里做错了 我使用的代码如下:Android 微调器不更新,android,android-spinner,Android,Android Spinner,我有3个微调器,当第一个微调器更新时,第二个和第三个微调器应该更新,但只有第二个微调器更新。这两个检查确实会打印到logcat,但第三个微调器没有更新。如果我注释掉spinner2.setAdapter(),则第三个spinner将更新。如果我更改顺序,使第三个微调器应首先更新,则第二个微调器仍会更新,而第三个微调器不会更新。我哪里做错了 我使用的代码如下: spinner1.setOnItemSelectedListener(new OnItemSelectedListener()
spinner1.setOnItemSelectedListener(new OnItemSelectedListener()
{
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3)
{
pos = arg2;
switch(pos)
{
case 0:
allDepts.setDropDownViewResource(R.layout.multiline_spinner_dropdown_item);
spinner2.setAdapter(allDepts);
allCourses.setDropDownViewResource(R.layout.multiline_spinner_dropdown_item);
spinner3.setAdapter(allCourses);
break;
case 1:
AEDepartments.setDropDownViewResource(R.layout.multiline_spinner_dropdown_item);
AEDepartments.notifyDataSetChanged();
spinner2.setAdapter(AEDepartments);
Log.v("Spinner check", "Department check.");
AECourses.setDropDownViewResource(R.layout.multiline_spinner_dropdown_item);
AECourses.notifyDataSetChanged();
spinner3.setAdapter(AECourses);
Log.v("Spinner check", "Course check.");
break;
}
}
@Override
public void onNothingSelected(AdapterView<?> arg0)
{
}
});
spinner1.setOnItemSelectedListener(新的OnItemSelectedListener()
{
@凌驾
已选择公共视图(AdapterView arg0、视图arg1、内部arg2、长arg3)
{
pos=arg2;
开关(pos)
{
案例0:
allDepts.setDropDownViewResource(R.layout.multiline\u微调器\u下拉菜单\u项);
喷丝头2.设置适配器(所有部件);
allCourses.setDropDownViewResource(R.layout.multiline\u微调器\u下拉菜单\u项);
喷丝头3.设置适配器(所有课程);
打破
案例1:
AEDepartments.setDropDownViewResource(R.layout.multiline\u微调器\u下拉项);
AEDepartments.notifyDataSetChanged();
喷丝头2.设置适配器(AED部门);
Log.v(“旋转器检查”、“部门检查”);
AECourses.setDropDownViewResource(R.layout.multiline\u微调器\u下拉菜单\u项);
Aecources.notifyDataSetChanged();
喷丝头3.设置适配器(AECourses);
Log.v(“旋转器检查”、“航向检查”);
打破
}
}
@凌驾
未选择公共无效(AdapterView arg0)
{
}
});
编辑:
因此,当应用程序加载时,它将显示“请选择学校”,并显示所有系和课程。当我单击第一个微调器并将其更改为“学校1”时。喷丝头2应更新为仅显示学校1中的部门(AEDepartments ArrayaAdapter中的内容),喷丝头3应更新为仅显示学校1中的课程(AECourses ArrayaAdapter中的内容)
@覆盖
创建时的公共void(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.student1);
spinner1=(Spinner)this.findviewbyd(R.id.school);
spinner2=(Spinner)this.findViewById(R.id.dept);
spinner3=(Spinner)this.findViewById(R.id.course);
ArrayAdapter allSchools=新的ArrayAdapter(此,
android.R.layout.simple_微调器_项目,新学校[]{
新学校(“,”--请选择学校--”),
新学校(“A”、“学校1”),
新学校(“B”、“学校2”),
新学校(“C”、“学校3”)
});
allSchools.setDropDownViewResource(R.layout.multiline\u微调器\u下拉菜单\u项);
喷丝头1.设置适配器(所有学校);
喷丝头1.SetonimSelectedListener(此);
最终阵列适配器allDepts=新阵列适配器(此,
android.R.layout.simple_微调器_项目,新学校[]{
新学校(“,”--请选择部门-”,
新学校(“1”、“Dep1”),
新学校(“2”、“Dep2”),
新学校(“3”、“Dep3”),
新学校(“4”、“Dep4”)
});
allDepts.setDropDownViewResource(R.layout.multiline\u微调器\u下拉菜单\u项);
喷丝头2.设置适配器(所有部件);
喷丝头2.SetonimSelectedListener(此);
最终阵列适配器所有课程=新阵列适配器(此,
android.R.layout.simple\u微调器\u项目,新学校[]{
新学校(“,”--请选择课程-”,
新学校(“C1”、“Couyrse1”),
新学校(“C2”、“Couyrse2”),
新学校(“C3”、“Couyrse3”),
新学校(“C4”、“Couyrse4”)
});
allCourses.setDropDownViewResource(R.layout.multiline\u微调器\u下拉菜单\u项);
喷丝头3.设置适配器(所有课程);
喷丝头3.SetonimSelectedListener(此);
//显示学校的所有部门1
最终阵列适配器AEDEPARTS=新阵列适配器(此,
android.R.layout.simple_微调器_项目,新学校[]{
新学校(“,”--请选择部门-”,
新学校(“1”、“Dep1”),
新学校(“3”、“Dep3”)
});
//显示学校1中的所有课程
最终ArrayAdapter AECourses=新ArrayAdapter(此,
android.R.layout.simple_微调器_项目,新学校[]{
新学校(“,”--请选择课程-”,
新学校(“C1”、“Couyrse1”),
新学校(“C3”、“Couyrse3”)
});
spinner1.setOnItemSelectedListener(新的OnItemSelectedListener()
{
@凌驾
已选择公共视图(AdapterView arg0、视图arg1、内部arg2、长arg3)
{
pos=arg2;
开关(pos)
{
案例0:
allDepts.setDropDownViewResource(R.layout.multiline\u微调器\u下拉菜单\u项);
allCourses.setDropDownViewResource(R.layout.multiline\u微调器\u下拉菜单\u项);
喷丝头2.设置适配器(所有部件);
喷丝头3.设置适配器(所有课程);
Log.v(“旋转器检查”、“部门检查”);
Log.v(“旋转器检查”、“航向检查”);
打破
案例1:
AEDepartments.setDropDownViewResource(R.layout.multiline\u微调器\u下拉项);
AEDepartments.notifyDataSetChanged();
喷丝头2.设置适配器(AED部门);
Log.v(“旋转器检查”、“部门检查”);
AECourses.setDropDownViewResource(R.layout.multiline\u微调器\u下拉菜单\u项);
Aecources.notifyDataSetChanged();
喷丝头3.设置适配器(AECourses);
Log.v(“旋转器检查”、“航向检查”);
打破
}
}
@爱
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.student1);
spinner1 = (Spinner)this.findViewById(R.id.school);
spinner2 = (Spinner)this.findViewById(R.id.dept);
spinner3 = (Spinner)this.findViewById(R.id.course);
ArrayAdapter<School> allSchools = new ArrayAdapter<School>(this,
android.R.layout.simple_spinner_item, new School[] {
new School("","-- Please Select School --"),
new School("A","School 1"),
new School("B","School 2"),
new School("C","School 3")
});
allSchools.setDropDownViewResource(R.layout.multiline_spinner_dropdown_item);
spinner1.setAdapter(allSchools);
spinner1.setOnItemSelectedListener(this);
final ArrayAdapter<School> allDepts = new ArrayAdapter<School>(this,
android.R.layout.simple_spinner_item, new School[] {
new School("","-- Please Select Department --"),
new School("1","Dep1"),
new School("2","Dep2"),
new School("3","Dep3"),
new School("4","Dep4")
});
allDepts.setDropDownViewResource(R.layout.multiline_spinner_dropdown_item);
spinner2.setAdapter(allDepts);
spinner2.setOnItemSelectedListener(this);
final ArrayAdapter<School> allCourses = new ArrayAdapter<School>(this,
android.R.layout.simple_spinner_item, new School[] {
new School("","-- Please Select Course --"),
new School("C1","Couyrse1"),
new School("C2","Couyrse2"),
new School("C3","Couyrse3"),
new School("C4","Couyrse4")
});
allCourses.setDropDownViewResource(R.layout.multiline_spinner_dropdown_item);
spinner3.setAdapter(allCourses);
spinner3.setOnItemSelectedListener(this);
//Displaying all the departments in School 1
final ArrayAdapter<School> AEDepartments = new ArrayAdapter<School>(this,
android.R.layout.simple_spinner_item, new School[] {
new School("","-- Please Select Department --"),
new School("1","Dep1"),
new School("3","Dep3")
});
//Displaying all the courses in School 1
final ArrayAdapter<School> AECourses = new ArrayAdapter<School>(this,
android.R.layout.simple_spinner_item, new School[] {
new School("","-- Please Select Course --"),
new School("C1","Couyrse1"),
new School("C3","Couyrse3")
});
spinner1.setOnItemSelectedListener(new OnItemSelectedListener()
{
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3)
{
pos = arg2;
switch(pos)
{
case 0:
allDepts.setDropDownViewResource(R.layout.multiline_spinner_dropdown_item);
allCourses.setDropDownViewResource(R.layout.multiline_spinner_dropdown_item);
spinner2.setAdapter(allDepts);
spinner3.setAdapter(allCourses);
Log.v("Spinner check", "Department check.");
Log.v("Spinner check", "Course check.");
break;
case 1:
AEDepartments.setDropDownViewResource(R.layout.multiline_spinner_dropdown_item);
AEDepartments.notifyDataSetChanged();
spinner2.setAdapter(AEDepartments);
Log.v("Spinner check", "Department check.");
AECourses.setDropDownViewResource(R.layout.multiline_spinner_dropdown_item);
AECourses.notifyDataSetChanged();
spinner3.setAdapter(AECourses);
Log.v("Spinner check", "Course check.");
break;
}
}
@Override
public void onNothingSelected(AdapterView<?> arg0)
{
}
});
}