我目前在尝试根据第一个选择填充第二个微调器时遇到问题。
我的第一个微调器将在下拉列表中显示如下内容:
选项1 选项2 选项3
然后下面还有另一个微调器:
我只希望 Option1 是特殊的,也就是说,当用户选择 Options1 时,
第二个微调器将显示:
规格1
如果用户选择 Option2 或 Option3,那么他们会显示:
规格 1 规格 2 规格 3。
你可能明白我在说什么。只有选择了 Option1,第二个微调器中才会有唯一的选择。
到目前为止,这是我的 onCreate 代码:
// creating adapters for both spinners
ArrayAdapter<Grid> dataAdapter = new ArrayAdapter<Grid>(this,
android.R.layout.simple_spinner_item, gridArrayList);
//first drop down spinner here
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
gridSpinner.setAdapter(dataAdapter);
regions = getResources().getStringArray(R.array.regions_array);
defaultRegions = getResources().getStringArray(R.array.default_array);
final ArrayAdapter<String> regionAdapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, regions);
final ArrayAdapter<String> defaultAdapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, defaultRegions); //what should appear if user selected Option2 or Option3.
这是我处理第一个微调器选择的代码:
gridSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View v,
int position, long rowId)
{
gridSelect = gridSpinner.getItemAtPosition(position).toString();
Toast.makeText(LoginActivity.this, gridSelect, Toast.LENGTH_SHORT)
.show();
gridInteger = (int) gridSpinner.getItemIdAtPosition(position);
switch(gridInteger)
{
case 0:
regionSpinner.setAdapter(regionAdapter); //hint region adapter has spec1.
regionAdapter.notifyDataSetChanged();
break;
default:
regionSpinner.setAdapter(defaultAdapter);
regionAdapter.notifyDataSetChanged();
break;
}
}
如果有人能指出我正确的方向或可能告诉我哪里出错了,我将非常感激。再次感谢你!