Android 基于某个微调器选择填充另一个微调器

Android 基于某个微调器选择填充另一个微调器,android,spinner,Android,Spinner,当前,我在尝试根据第一个微调器的选择填充第二个微调器时遇到问题 我的第一个微调器在下拉列表中有如下内容: 选择1 选择2 选择3 下面还有另一个微调器: 我只希望选项1是特殊的,也就是说,当用户选择选项1时 第二个微调器将显示: 规格1 如果用户选择选项2或选项3,则会显示以下内容: 规格1 规格2 规格3 你可能明白我的意思了。只有选择了选项1,第二个微调器中才会有唯一的选项 以下是到目前为止我的onCreate代码: // creating adapters for both spinner

当前,我在尝试根据第一个微调器的选择填充第二个微调器时遇到问题

我的第一个微调器在下拉列表中有如下内容:

选择1 选择2 选择3

下面还有另一个微调器:

我只希望选项1是特殊的,也就是说,当用户选择选项1时

第二个微调器将显示:

规格1

如果用户选择选项2或选项3,则会显示以下内容:

规格1 规格2 规格3

你可能明白我的意思了。只有选择了选项1,第二个微调器中才会有唯一的选项

以下是到目前为止我的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.
//为两个微调器创建适配器
ArrayAdapter dataAdapter=新的ArrayAdapter(此,
android.R.layout.simple_微调器_项,gridArrayList);
//这里是第一个下拉微调器
dataAdapter.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉项);
setAdapter(dataAdapter);
regions=getResources().getStringArray(R.array.regions\u数组);
defaultRegions=getResources().getStringArray(R.array.default\u数组);
最终阵列适配器区域适配器=新阵列适配器(此,
android.R.layout.simple_微调器_项目,区域);
最终ArrayAdapter defaultAdapter=新的ArrayAdapter(此,
android.R.layout.simple\u微调器\u项目,默认区域)//如果用户选择了选项2或选项3,应显示什么。
以下是我处理第一个微调器选择的代码:

 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;

                }


            }
gridSpinner.setOnItemSelectedListener(新的OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView父视图、视图v、,
int位置,长rowId)
{
gridSelect=gridSpinner.getItemAtPosition(position).toString();
Toast.makeText(LoginActivity.this、gridSelect、Toast.LENGTH\u SHORT)
.show();
gridInteger=(int)gridSpinner.getItemIdAtPosition(位置);
开关(gridInteger)
{
案例0:
regionSpinner.setAdapter(regionAdapter);//提示区域适配器具有spec1。
regionAdapter.notifyDataSetChanged();
打破
违约:
regionSpinner.setAdapter(defaultAdapter);
regionAdapter.notifyDataSetChanged();
打破
}
}

如果有人能给我指出正确的方向,或者可能告诉我哪里出了问题,我将不胜感激。再次感谢!

既然你的代码工作正常,你能把它从问题中剔除并作为答案发布吗?几天后,接受你的答案。这样做会让人们更容易找到解决方案我对未来的这一挑战充满信心。