Omar Dhanish
Omar Dhanish

Reputation: 875

android :populating spinner based on another spinner selection

spinner is not populating based on the another spinner selection , I have been on this for hours , still can't get the issue , No error in LOGCAT. Thanks in advance.

This is my code

 ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_dropdown_item_1line, SPINNERCOUNTRY);

    spinnerCountry = (MaterialBetterSpinner) findViewById(R.id.spinnerState);

    spinnerCountry.setAdapter(adapter);

    spinnerCity = (Spinner) findViewById(R.id.spinnerCity);


    spinnerCountry.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> adapterView, View view, int pos, long l) {
            adapterView.getItemAtPosition(pos);
            if (pos == 0) {
                ArrayAdapter<CharSequence> adapter =  ArrayAdapter
                        .createFromResource(SpinnerStateCitySelectorActivity.this, R.array.city_Tamil_Nadu,
                                android.R.layout.simple_spinner_dropdown_item);
                spinnerCity.setAdapter(adapter);
            } else if (pos == 1) {
                ArrayAdapter<CharSequence> adapter = ArrayAdapter
                        .createFromResource(SpinnerStateCitySelectorActivity.this, R.array.city_Kerela,
                                android.R.layout.simple_spinner_dropdown_item);
                spinnerCity.setAdapter(adapter);
            } else if (pos == 2) {
                ArrayAdapter<CharSequence> adapter = ArrayAdapter
                        .createFromResource(SpinnerStateCitySelectorActivity.this, R.array.city_Karnataka,
                                android.R.layout.simple_spinner_dropdown_item);
                spinnerCity.setAdapter(adapter);
            }
        }

        @Override
        public void onNothingSelected(AdapterView<?> adapterView) {

        }
    });

Upvotes: 3

Views: 3347

Answers (2)

user6490462
user6490462

Reputation:

You may try it with value of selected item, using onItemSelectedListner

yourMainSpin.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
            String spinnerValue = yourMainSpin.getSelectedItem().toString();
            if (spinnerValue.equals("requierdString")) { 
                subSpinner.setAdapter(yourAdapter);
            }else if (spinnerValue.equals("requierdString")){
                subSpinner.setAdapter(yourAdapter);
                }
}
        @Override
        public void onNothingSelected(AdapterView<?> adapterView) {

        }
    });

Hope this will Help you.

Upvotes: 2

Chirag.T
Chirag.T

Reputation: 766

User onItemClickListener instead of setOnItemSelectedListener

Upvotes: 1

Related Questions