-2

While using spinner in fragment i am getting these errors ##

//my fragments code

    import android.app.Fragment;
    import android.os.Bundle;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.ArrayAdapter;

    import static android.R.layout.simple_spinner_dropdown_item;

    public class lang_spinner extends Fragment{
        Spinner source_lang;
        Spinner target_lang;
        String array_sourcelang[];
        String array_targetlang[];
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
            View view= inflater.inflate(R.layout.lang_spinner, container, false);
            source_lang = (Spinner) view.findViewById(R.id.sourcelang);
            array_sourcelang = new String[]{"English", "German"};
            ArrayAdapter<String> arrayAdapter1;
            arrayAdapter1 = new ArrayAdapter<String>(getActivity(),
                    simple_spinner_dropdown_item, array_sourcelang);
            source_lang.setAdapter(arrayAdapter1);
            target_lang = (Spinner) view.findViewById(R.id.targetlang);
            array_targetlang = new String[]{"English", "German"};
            ArrayAdapter<String> arrayAdapter2 = new ArrayAdapter<String>(getActivity(),
                    simple_spinner_dropdown_item, array_targetlang);
            target_lang.setAdapter(arrayAdapter2);
            return view;
        }

//Errors


 Error:(20, 50) error: incompatible types: View cannot be converted to Spinner
Error:(26, 50) error: incompatible types: View cannot be converted to Spinner
Error:(30, 20) error: cannot find symbol method setAdapter(ArrayAdapter<String>)
Error:(25, 20) error: cannot find symbol method setAdapter(ArrayAdapter<String>)

//my xaml file lang_spinner.xml

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/activity_spinner"
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        tools:context="com.example.sarimahmed.fyp.Spinner">
        <Spinner
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/sourcelang"
            android:layout_weight="5"
            android:popupBackground="@color/spinnerbackground" />

        <ImageButton
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:id="@+id/langswapbtn"
            android:layout_weight="0.5"
            android:background="@null"
            android:src="@drawable/btn_swap1"
            />
        <Spinner
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:popupBackground="@color/spinnerbackground"
            android:id="@+id/targetlang"
            android:layout_weight="5"
            android:textColor="@color/mytextcolor"
            />
    </LinearLayout>
Sarim Ahmed
  • 195
  • 7

3 Answers3

2

incompatible types: Spinner cannot be converted to String

Because source_lang and target_lang declared as String.

Use Spinner instead of String when declaring source_lang and target_lang variables:

Spinner source_lang;
Spinner target_lang;
ρяσѕρєя K
  • 132,198
  • 53
  • 198
  • 213
0

you need to change String source_lang; to Spinner source_lang; and String target_lang; to Spinner target_lang;

Omer
  • 650
  • 5
  • 15
0

Remove this line.

import static android.R.layout.simple_spinner_dropdown_item;

Try this,

ArrayAdapter<String> arrayAdapter1 = new ArrayAdapter<String>(getActivity(),
                    android.R.layout.simple_spinner_item, array_sourcelang);

ArrayAdapter<String> arrayAdapter2 = new ArrayAdapter<String>(getActivity(),
                    android.R.layout.simple_spinner_item, array_targetlang);
santosh kumar
  • 2,952
  • 1
  • 15
  • 27