所以我可以看到有关于这个的问题,但不在我的范围内。我正在构建一个有两个微调器的 Android 应用程序。第一个有一系列选择。但是,我不确定如何影响第二个基于第一个的选择。我知道你可以输入
AdapterView.OnItemSelectedListener
但我不确定如何实现这一点。我已经阅读了这个,但这并不是我想要的。我也很好奇我如何告诉微调器选择哪个数组,它是在 .xml 文件中还是在 .java 文件中?
所以我可以看到有关于这个的问题,但不在我的范围内。我正在构建一个有两个微调器的 Android 应用程序。第一个有一系列选择。但是,我不确定如何影响第二个基于第一个的选择。我知道你可以输入
AdapterView.OnItemSelectedListener
但我不确定如何实现这一点。我已经阅读了这个,但这并不是我想要的。我也很好奇我如何告诉微调器选择哪个数组,它是在 .xml 文件中还是在 .java 文件中?
尝试这个,
firstSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
// TODO Auto-generated method stub
string selectedValue = arg0.getSelectedItem().toString();
if(selectedValue.equalsIgnoreCase(string1)
{
ArrayAdapter<String> firstAdapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, firstArray);
secondSpinner.setAdapter(firstAdapter);//
}
else if(selectedValue.equalsIgnoreCase(string2)
{
ArrayAdapter<String> firstAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, array2);
secondSpinner.setAdapter(firstAdapter);
}
}
希望它会帮助你。
更新第一个微调器 setOnItemSelectedListener 中第二个微调器的数组列表
spinner1.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
// TODO Auto-generated method stub
string str=spinner1.getSelectedItem().toString();
if(str.equals("spinner item"))//spinner item is selected item of spinner1
{
ArrayAdapter<String>adapter1 = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, array1);
//adapter1.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
spinner2.setAdapter(adapter1);//
}else if{
ArrayAdapter<String>adapter1 = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, array2);
//adapter1.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
spinner2.setAdapter(adapter2);
}
}
如果它是一个字符串数组,您可以在 XML 中定义它,然后使用 getResource().getStringArray() 或在 Java 中声明它。
在第一个微调器的侦听器中,您可以执行以下操作来设置第二个微调器的选项。
secondSpinnerAdapter = new ArrayAdapter<CharSequence>(this, android.R.layout.simple_spinner_item, newArray);
secondSpinner.setAdapter(secondSpinnerAdapter);
经过测试和工作