Based on a certain spinner selection populate another spinner

北战南征 提交于 2019-12-10 18:35:47

问题


I am currently having an issue with trying to populate a second spinner based on the selection of the first.

My first spinner would have something like the following in the drop down:

Option1 Option2 Option3

Then there is another spinner below:

I only want Option1 to be special, meaning, when the user picks Options1,

the second spinner will display:

spec1

If the user selects Option2 or Option3 then they display this:

spec1 spec2 spec3.

You probably see what I'm getting at. Only if Option1 is chosen should there be a unique choice in the second spinner.

Here is my code for the onCreate so far:

// 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.

Here is my code for handling the First spinner selection:

 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;

                }


            }

If anyone could point me in the right direction or possibly tell me where I am going wrong I would very much appreciate it. Thank you again!

来源:https://stackoverflow.com/questions/11689709/based-on-a-certain-spinner-selection-populate-another-spinner

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!