Reputation: 431
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".
Upvotes: 0
Views: 828
Reputation: 133560
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
}
});
Upvotes: 3
Reputation: 2457
This will help you
adapter = new ArrayAdapter<String>(getActivity(),
android.R.layout.simple_spinner_item, list);
Upvotes: 0
Reputation:
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);
Upvotes: 0