我正在使用相互依赖的微调器。因此,当我在旋转器A中选择一个值时,其他旋转器B,C,D的arraylist会相应地改变。当我在微调器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) {
}
});
每次在雇主中选择一个项目时,这都会更改Sectionlist的数据。然后在扇区列表中选择任何项目。
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) {
}
});
这里当我选择与之前相同索引的项目时,它不会在微调器视图中更新。
在你的旋转器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) {
}
});