所以我可以看到有关于此的问题,但不在我的范围内。我正在建立一个Android应用程序,它有两个微调器。第一个有一系列选择。但是,我不确定如何根据第一个选择影响第二个选择。我知道你可以放入
AdapterView.OnItemSelectedListener
但我不确定如何实现这一点。我已经读过这篇文章,但这并不是我想要的。我也很好奇我如何告诉微调器选择哪个数组,是在.xml还是.java文件中?
答案 0 :(得分:1)
试试这个,
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);
}
}
希望它会对你有所帮助。
答案 1 :(得分:0)
如果它是一个String数组,你可以用XML定义它,然后使用getResource()。getStringArray()或用Java声明它。
在第一个微调器的侦听器中,您可以执行以下操作来设置第二个微调器的选项。
secondSpinnerAdapter = new ArrayAdapter<CharSequence>(this, android.R.layout.simple_spinner_item, newArray);
secondSpinner.setAdapter(secondSpinnerAdapter);
经过测试和工作
答案 2 :(得分:0)
更新第一个微调器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);
}
}