Create a spinner programmatically in Android
You need to add the Spinner
to a layout.
First create a container
for the Spinner
and then create the Spinner
and add it to your container
. Next set content of you Activity
to your container
.
This could be done like this, in your onCreate
method:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my);
LinearLayout layout = new LinearLayout(this);
ArrayList<String> spinnerArray = new ArrayList<String>();
spinnerArray.add("one");
spinnerArray.add("two");
spinnerArray.add("three");
spinnerArray.add("four");
spinnerArray.add("five");
Spinner spinner = new Spinner(this);
ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, spinnerArray);
spinner.setAdapter(spinnerArrayAdapter);
layout.addView(spinner);
setContentView(layout);
}
EDIT:
Just to clarify: if the Spinner
isn't added to the content of the Activity
inside a layout, it isn't visible, so that's why you don't get any errors or anything, because there isn't any errors in your code, per se ;-)
MavrosGatos
Updated on July 09, 2022Comments
-
MavrosGatos almost 2 years
I want to create a spinner without using XML. I am new in android and my knowledge is limited. By now I have this code (see above) and I want my spinner in one of the tabs of my
TabActivity
. There is no obvious error but when I open my activity the tab is empty. I would appreciate some help.public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ArrayList<String> spinnerArray = new ArrayList<String>(); spinnerArray.add("one"); spinnerArray.add("two"); spinnerArray.add("three"); spinnerArray.add("four"); spinnerArray.add("five"); Spinner spinner = new Spinner(this); ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, spinnerArray); spinner.setAdapter(spinnerArrayAdapter); }
-
MavrosGatos about 11 yearsi use a TabActivity and my activity layout has a TabHost. I want to use the spinner only in one tab and thats why i didnt put a spinner in the xml. How is it possible to create another layout(activity_my) to put the spinner and use it only in this tab??
-
Darwind about 11 yearsTo add the spinner to a specific fragment you would need to add the spinner to the specific fragments layout instead of the activity's layout. If this doesn't make sense open a new question for that.