我正在使用彼此依赖的微调器。因此,当我在微调器A中选择一个值时,其他微调器B,C,D的数组列表也会相应更改。 当我选择微调器B上位置1的项目,然后选择微调器A中的任何其他值时,微调器B上的数据将更新。因此,我再次选择微调器B上位置1的项目,视图不变,而选择其他位置的项目则更改视图。因此,在这段代码中,相同的索引不会获得更新的值。
ArrayAdapter<String> myAdapterEmployer = new ArrayAdapter<String>(MainActivity.this,
android.R.layout.simple_list_item_1,employerlist);
myAdapterEmployer.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
employer.setAdapter(myAdapterEmployer);
employer.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){
@Override
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id)
{
if(position > 0) {
employer1 = employer.getSelectedItem().toString();
employeridname = employdetail.get(employer1);
Sectorlist(employeridname);
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
每次在雇主中选择一个项目时,此操作都会更改Sectorlist的数据。 然后在扇区列表中选择任何项目。
ArrayAdapter<String> myAdaptersector = new ArrayAdapter<String>(MainActivity.this,
android.R.layout.simple_list_item_1,sectorlist);
myAdaptersector.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
sector.setAdapter(myAdaptersector);
sector.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){
@Override
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id)
{
sector1=sector.getSelectedItem().toString();
String selectedsectortext = (String) parent.getItemAtPosition(position);
if(position > 0){
sectoridd=sectordetail.get(selectedsectortext);
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
在这里,当我选择与以前具有相同索引的项目时,它不会在微调器视图中更新。
答案 0 :(得分:0)
在旋转器 A 的onItemSelected
内,您可以将Adapter设置为要更新的其他旋转器,这将根据需要工作。
employer.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){
@Override
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id)
{
if(position > 0) {
employer1 = employer.getSelectedItem().toString();
employeridname = employdetail.get(employer1);
Sectorlist(employeridname);
// Update other spinners here
myAdaptersector = new ArrayAdapter<String>(MainActivity.this,
android.R.layout.simple_list_item_1,sectorlist);
myAdaptersector.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
sector.setAdapter(myAdaptersector);
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});