0

I have a tabbed activity "ActivityBeamRec" that has two fragments, in the second fragment error occur when i try to add spinner, here is the fragment code

public  class FragBeamRec extends Fragment  {

        public static FragBeamRec newInstance() {
        FragBeamRec fragment = new FragBeamRec();
        return fragment;
             }

        public FragBeamRec() {
    }
    static  EditText tasss = null;
    static EditText tass1 = null;
    static  Spinner spinAs = null;
    static Spinner spinAs1 = null;

    static  ArrayAdapter<String> adapter;

    @Override
    public View onCreateView(  LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
       final   View v = inflater.inflate(R.layout.fragment_frag_beam_rec, container, false);
        ArrayList<String> list = new ArrayList<>();
        list.add(0,"");
        list.add(1,"");
        list.add(2,"");
        spinAs  = (Spinner)v.findViewById(R.id.spinner);
        spinAs1 = (Spinner)v.findViewById(R.id.spinner2);
        adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, list);
            spinAs.setAdapter(adapter);

            return v;
    }

}

I tried to use ActivityBeamRec.this insted of this but I ended with an error "ActivityBeamRec is not an enclosing class".

tamim abweini
  • 459
  • 6
  • 21

3 Answers3

3

Change this

    adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, list);

to

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

The param needs to be a context. Use getActivity(). http://developer.android.com/reference/android/app/Fragment.html#getActivity%28%29

To the comment

 spinner.setOnItemSelectedListener(new OnItemSelectedListener() {

        @Override
        public void onItemSelected(AdapterView<?> arg0, View arg1,
                int arg2, long arg3) {


        }

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

        }
    });
Raghunandan
  • 132,755
  • 26
  • 225
  • 256
  • it work thanks, but when i add `spinAs.setOnItemSelectedListener(getActivity());` gives an error, also if I put "this" wont work – tamim abweini Mar 28 '16 at 17:45
  • @tamimabweini you need to set a selection listener with annonymous inner class or let your fragment class implement the listener and then use you use this. check the edited answer. – Raghunandan Mar 29 '16 at 07:23
0

Change this line

adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, list);

to this

adapter = new ArrayAdapter<String>(this.getActivity(), android.R.layout.simple_spinner_item, list);
0

This will help you

 adapter = new ArrayAdapter<String>(getActivity(),
               android.R.layout.simple_spinner_item, list);
Community
  • 1
  • 1
Ajay Pandya
  • 2,417
  • 4
  • 29
  • 65