Tuesday, 4 February 2020

How to set spinner adapter with string type array in android java and get value of spinner value with custom spinner layout

In your strings.xml define:

<string-array name="array_spinner">
   <item>Select value</item>  
   <item>Array Item One</item>
   <item>Array Item Two</item>
   <item>Array Item Three</item>
</string-array>
 
 
Or you can add manually into String type of array 
 
Like String[] spinnerValue=new String{"select value","Array Item One",
                                "Array Item Two","Array Item Three"}; 
 
In adapter layout : custom_spinner.xml
 
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
   android:id="@+id/text_id" 
   android:layout_width="match_parent"
   android:layout_height="match_parent"  
   android:text="hello_world"
   android:textColor="@android:color/holo_blue_dark"
   android:textColorHighlight="@android:color/primary_text_dark" 
   android:textSize="18sp"/> 


In your layout:
 
<Spinner 
    android:id="@+id/spinner"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"/> 

When user set string array spinner xml file and just get value as 
spinner as drop-down.
 
In your Java
 

Spinner mySpinner = (Spinner) findViewById(R.id.spinner);
String spinnerValue = mySpinner.getSelectedItem().toString();
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, 
                      R.layout.custom_spinner, spinnerValue);
 
// attaching data adapter to spinner
mySpinner.setAdapter(dataAdapter); 
 
 
mySpinner.setOnItemSelectedListener(new AdapterView.
                   OnItemSelectedListener() {
    public void onItemSelected(AdapterView<?> parent, View view, 
             int pos, long id) {
        String item = parent.getItemAtPosition(pos);
    }
    public void onNothingSelected(AdapterView<?> parent) {
    }
});

 
 
when user select item from spinner just select drop-down or just click on button. Same in kotlin or java. 
 
Thanks
 

No comments:

Post a Comment