我创建了一个类,并向布局添加了两个微调器。
目标:如果您从第一个微调器中选择任何项目,它将更改第二个微调器的内容。
我从 onCreate()(onItemSelected(spinnercategory, spinnerEnterprisel, x, i);) 调用
。问题是,当我从第一个项目中选择任何项目时,它会更改第二个项目的内容,但如果我需要从第二个项目中选择任何项目,那么它将不会显示为选定项目。
public void onItemSelected(AdapterView<?> parent, View view, int pos,
long id) {
// TODO Auto-generated method stub
Spinner spinnerEnterprisel = (Spinner) findViewById(R.id.spinner_enterprise_folding_inserter);
Spinner spinnercategoryl = (Spinner) findViewById(R.id.spinner_categories);
switch (spinnercategoryl.getSelectedItemPosition()) {
case 0:
ArrayAdapter<CharSequence> adapterDatal = ArrayAdapter
.createFromResource(this,
R.array.enterprise_folding_inserter,
android.R.layout.simple_spinner_item);
adapterDatal
.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinnerEnterprisel.setAdapter(adapterDatal);
break;
case 1:
ArrayAdapter<CharSequence> adapterData1 = ArrayAdapter
.createFromResource(this, R.array.enterprise_sorters,
android.R.layout.simple_spinner_item);
adapterData1
.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinnerEnterprisel.setAdapter(adapterData1);
break;
case 2:
ArrayAdapter<CharSequence> adapterData2 = ArrayAdapter
.createFromResource(this, R.array.Softwares,
android.R.layout.simple_spinner_item);
adapterData2
.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinnerEnterprisel.setAdapter(adapterData2);
break;
case 3:
ArrayAdapter<CharSequence> adapterData3 = ArrayAdapter
.createFromResource(this, R.array.workflow,
android.R.layout.simple_spinner_item);
adapterData3
.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinnerEnterprisel.setAdapter(adapterData3);
break;
}
spinnerEnterprisel.setOnItemSelectedListener(enterprise.this);
spinnercategoryl.setOnItemSelectedListener(enterprise.this);
// Spinner spinnerEnterprisel1 = (Spinner)
// findViewById(R.id.spinner_enterprise_folding_inserter);
}
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}`
最佳答案
您已为两个 Spinner 设置了相同的监听器。每当您在任一微调器中做出选择时,“子”微调器都会重置。只需删除任何设置“子”微调器的 OnItemSelectedListener
的代码即可。 :
<罢工>罢工>
spinnerEnterprisel.setOnItemSelectedListener(enterprise.this);
现在,“子”微调器将保留您选择的选择。
关于java - 父子旋转器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12776408/