Thursday, February 9, 2017

Update content of spinner after selecting item in Android

Are your spinners in different activities? 

If they are, so you can just pass the selected value of the first spinner via Intent (See the putExtra section) and retrieve the value from the next activity so that you can set accordingly the next spinners. 

Edit: 
Here is an example that changes the selected item in the 2nd and 3rd spinner. Update the listener (onItemSelected method) with your logic

Create Activity:

private Spinner s;
private Spinner s2;
private Spinner s3;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.main);
    String[] myList = new String[] {
        Hello,
        World,
        Foo,
        Bar
    };
    String[] myList2 = new String[] {
        Hello2,
        World2,
        Foo2,
        Bar2
    };
    String[] myList3 = new String[] {
        Hello3,
        World3,
        Foo3,
        Bar3
    };

    s = (Spinner) findViewById(R.id.spinner1);
    s2 = (Spinner) findViewById(R.id.spinner2);
    s3 = (Spinner) findViewById(R.id.spinner3);

    s.setAdapter(new ArrayAdapter(this, android.R.layout.simple_spinner_item, myList));
    s2.setAdapter(new ArrayAdapter(this, android.R.layout.simple_spinner_item, myList2));
    s3.setAdapter(new ArrayAdapter(this, android.R.layout.simple_spinner_item, myList3));

    s.setOnItemSelectedListener(new OnItemSelectedListener() {

        @Override
        public void onItemSelected(AdapterView parent, View v,
            int pos, long id) {
            s2.setSelection(pos);
            s3.setSelection(pos);
        }

        @Override
        public void onNothingSelected(AdapterView arg0) {

        }
    });
}

Create main.xml

<?xml version=”1.0″ encoding=”utf-8″?>
<LinearLayout android:layout_width=”fill_parent” xmlns:android=”http://schemas.android.com/apk/res/android”
android:layout_height=”wrap_content”
android:orientation=”vertical”>
<Spinner android:id=”@+id/spinner1″ android:layout_height=”wrap_content” android:layout_width=”fill_parent” />
<Spinner android:id=”@+id/spinner2″ android:layout_height=”wrap_content” android:layout_width=”fill_parent” />
<Spinner android:id=”@+id/spinner3″ android:layout_height=”wrap_content” android:layout_width=”fill_parent” />
</LinearLayout>

No comments :

Post a Comment