3

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

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

选项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;

                }


            }

如果有人能指出我正确的方向或可能告诉我哪里出错了,我将非常感激。再次感谢你!

4

0 回答 0