Search code examples
androidandroid-arrayadapterandroid-spinner

Get Text of Selected Spinner in android


I am using spinner in my android application like below

spino = dialog.findViewById(R.id.language_spinner);
            if (spino != null) {
                spino.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                    @Override
                    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                        String item_position = String.valueOf(position);
                        int itemposition = Integer.parseInt(item_position);
                        String selected = spino.getSelectedView().toString();
                        Log.e("selected position",""+itemposition);
                        Log.e("selected Text",selected);
                    }

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

                    }
                });
            }
            else{
                Log.e("Selected item :","NULL:");
            }

And xml layout is like below

 <Spinner
    android:id="@+id/language_spinner"
    android:layout_width="match_parent"
    android:layout_height="?actionBarSize"
    android:fontFamily="@font/popins_reguler"
    android:entries="@array/languages"
    android:layout_marginBottom="8dp"
    android:layout_marginEnd="8dp"
    android:theme="@style/Spinner"
    android:layout_marginStart="8dp"
    android:layout_marginTop="8dp">

Getting position of selected is working fine however I am getting text of selected position is like below

androidx.appcompat.widget.AppCompatTextView{dc81ebe V.ED..... ........ 0,35-986,111 #1020014 android:id/text1}

Can anyone please help me for get the text of selected position of spinner?

Thanks!


Solution

  • To get the text of selected item use spinner.getAdapter().getItem(position)

    spino = dialog.findViewById(R.id.language_spinner);
                if (spino != null) {
                    spino.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                        @Override
                        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                            String item_position = String.valueOf(position);
                            int itemposition = Integer.parseInt(item_position);
                            String selected = String.valueOf(spino.getAdapter().getItem(position));
                            Log.e("selected position",""+itemposition);
                            Log.e("selected Text",selected);
                        }
    
                        @Override
                        public void onNothingSelected(AdapterView<?> parent) {
    
                        }
                    });
                }
                else{
                    Log.e("Selected item :","NULL:");
                }