ADAM
ADAM

Reputation: 1

parent child spinner

I have created a class, and added two spinners to the layout.

Objectives: if you select any item from the first spinner it will change the content of the second spinner.

I am calling from onCreate()(onItemSelected(spinnercategoryl, spinnerEnterprisel, x, i);). The problem is that when I select any item from the first, it change the content of the second, but if i need to select any item from the second then it will not appear as selected item.

public void onItemSelected(AdapterView<?> parent, View view, int pos,
        long id) {
    // TODO Auto-generated method stub
    Spinner spinnerEnterprisel = (Spinner) findViewById(R.id.spinner_enterprise_folding_inserter);
    Spinner spinnercategoryl = (Spinner) findViewById(R.id.spinner_categories);

    switch (spinnercategoryl.getSelectedItemPosition()) {
    case 0:
        ArrayAdapter<CharSequence> adapterDatal = ArrayAdapter
                .createFromResource(this,
                        R.array.enterprise_folding_inserter,
                        android.R.layout.simple_spinner_item);
        adapterDatal
                .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

        spinnerEnterprisel.setAdapter(adapterDatal);

        break;
    case 1:
        ArrayAdapter<CharSequence> adapterData1 = ArrayAdapter
                .createFromResource(this, R.array.enterprise_sorters,
                        android.R.layout.simple_spinner_item);
        adapterData1
                .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

        spinnerEnterprisel.setAdapter(adapterData1);

        break;

    case 2:
        ArrayAdapter<CharSequence> adapterData2 = ArrayAdapter
                .createFromResource(this, R.array.Softwares,
                        android.R.layout.simple_spinner_item);
        adapterData2
                .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

        spinnerEnterprisel.setAdapter(adapterData2);

        break;
    case 3:
        ArrayAdapter<CharSequence> adapterData3 = ArrayAdapter
                .createFromResource(this, R.array.workflow,
                        android.R.layout.simple_spinner_item);
        adapterData3
                .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

        spinnerEnterprisel.setAdapter(adapterData3);

        break;
    }

    spinnerEnterprisel.setOnItemSelectedListener(enterprise.this);
    spinnercategoryl.setOnItemSelectedListener(enterprise.this);
    // Spinner spinnerEnterprisel1 = (Spinner)
    // findViewById(R.id.spinner_enterprise_folding_inserter);
}

public void onNothingSelected(AdapterView<?> arg0) {
    // TODO Auto-generated method stub

}`

Upvotes: 0

Views: 871

Answers (1)

Sam
Sam

Reputation: 86958

You have set the same listener to both Spinners. Whenever you make a choice in either Spinner the "child" Spinner will be reset. Simply remove any code that sets the "child" Spinner's OnItemSelectedListener:

spinnerEnterprisel.setOnItemSelectedListener(enterprise.this);

Now the "child" Spinner will retain the choice you selected.

Upvotes: 1

Related Questions