我正在尝试将微调器放在警报对话框上。此代码显示对话框,但微调器上没有任何项目。我在活动中使用相同的微调器并且工作正常。
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>
答案 0 :(得分:3)
实际上,您有两种不同的Alert Dialog布局参考。一个你正在查看update_layout
和其他你正在setView()
中直接膨胀的人。你的微调器是第一个update_layout视图的一部分。
所以只需更改代码行,
builder.setView(inflater.inflate(R.layout.list_item_modificar, null))
与
builder.setView(update_layout)