Reputation:
I have a spinner which's spinnerMode
is dialog. My question is: How can I open it programmatically by a button click or anything else? performClick()
didn't work for me. Thanks in advance.
<Spinner
android:id="@+id/spinner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="8dp"
android:spinnerMode="dialog"/>
Upvotes: 4
Views: 3815
Reputation: 1219
I Hope this will work for you.
button = (Button) findViewById(R.id.button);
final Spinner spinner = (Spinner) findViewById(R.id.spinner);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(MainActivity.this,
R.array.your_array, android.R.layout.simple_spinner_item); //add your arraylist.
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
spinner.performClick();
}
});
Upvotes: 4
Reputation: 99
I tried below code in my MainActivity.class it works like a charm!
Code:
Spinner spinner=(Spinner)findViewById(R.id.spinner);
String[] list={"one","Two","one","Two","one","Two","one","Two"};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_spinner_dropdown_item, list);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
spinner.performClick();
Note:Place this "spinner.performClick();" where ever you required ie,on button click or on server response etc....
Upvotes: 3
Reputation: 2299
Here is the code for spinner
Spinner spinner = findViewById(R.id.spinner);
Button button3 = findViewById(R.id.button3);
ArrayList<String> listSPinner = new ArrayList<>();
listSPinner.add("1");
listSPinner.add("1");
listSPinner.add("1");
listSPinner.add("1");
ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, listSPinner);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
button3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
spinner.performClick();
}
});
Upvotes: 1