Reputation: 11
I'm trying to put a spinner on a Alert Dialog. This code is showing the dialog but the spinner has no items on it. I use the same spinner on the activity and works fine.
Java code:
AlertDialog.Builder builder = new AlertDialog.Builder(this);
LayoutInflater inflater = (this).getLayoutInflater();
final View update_layout = getLayoutInflater().inflate(R.layout.list_item_modificar, null);
final Spinner spinner = (Spinner) update_layout.findViewById(R.id.scantidadmodificar);
ArrayAdapter<CharSequence> adapterspinner = ArrayAdapter.createFromResource(this, R.array.items, android.R.layout.simple_spinner_item);
adapterspinner.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapterspinner);
builder.setTitle(R.string.modificar_title);
builder.setCancelable(false);
builder.setView(inflater.inflate(R.layout.list_item_modificar, null))
.setPositiveButton(R.string.modificar_si, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
}
})
.setNegativeButton(R.string.modificar_no, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
}
});
builder.create();
builder.show();
XML from AlertDialog:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Spinner
android:layout_width="50dp"
android:layout_height="wrap_content"
android:id="@+id/scantidadmodificar"
android:spinnerMode="dropdown"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_alignBottom="@+id/etItem"
android:layout_marginRight="20dp" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/etItem"
android:hint="@string/modificar_ingresar"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_toLeftOf="@+id/scantidadmodificar"
android:layout_toStartOf="@+id/scantidadmodificar"
android:maxLength="20"
android:digits="abcdefghijklmnñopqrstuvwxyz "
android:layout_marginLeft="20dp" />
</RelativeLayout>
Upvotes: 0
Views: 348
Reputation: 109237
Actually you have two different Alert Dialog layout reference. One you are making view update_layout
and other you are directly inflating in setView()
And your spinner is part of first update_layout view.
So just change your code line,
builder.setView(inflater.inflate(R.layout.list_item_modificar, null))
with
builder.setView(update_layout)
Upvotes: 3