我目前遇到的问题是尝试根据第一个微调器的选择来填充第二个微调器。
我的第一个微调器会在下拉列表中显示以下内容:
选项1 选项2 选项3
然后下面还有另一个微调器:
我只希望Option1特殊,这意味着,当用户选择Options1时,
第二个微调器将显示:
SPEC1
如果用户选择Option2或Option3,则会显示以下内容:
SPEC1 SPEC2 SPEC3。
你可能会看到我的目标。只有选择了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.
以下是处理First微调器选择的代码:
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;
}
}
如果有人能指出我正确的方向,或者可能告诉我哪里出错了,我会非常感激。再次感谢你!