可以将Spinner放在警报对话框上吗?

时间:2015-08-13 18:48:18

标签: java android

我正在尝试将微调器放在警报对话框上。此代码显示对话框,但微调器上没有任何项目。我在活动中使用相同的微调器并且工作正常。

Java代码:

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();
来自AlertDialog的

XML:

<?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>

1 个答案:

答案 0 :(得分:3)

实际上,您有两种不同的Alert Dialog布局参考。一个你正在查看update_layout和其他你正在setView()中直接膨胀的人。你的微调器是第一个update_layout视图的一部分。

所以只需更改代码行,

builder.setView(inflater.inflate(R.layout.list_item_modificar, null))

builder.setView(update_layout)