我想要一个AlertDialog带有文本和图标的。我创建了两个数组,一个用于对话框项,另一个用于对话框项图标,但它不起作用。到目前为止,这是我的代码:
CharSequence options[] = new CharSequence[] {"RETEN", "ACCIDENTE VIAL", "INUNDACION", "ABUSO", "ASALTO / VIOLENCIA"};
builder = new AlertDialog.Builder(getActivity(), android.R.style.Theme_DeviceDefault_Settings);
builder.setCancelable(false);
Resources res = getResources();
TypedArray icons = res.obtainTypedArray(R.array.alertas);
builder.setIcon(icons);
builder.setTitle(getContext().getString(R.string.select_alert_type));
builder.setItems(options, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// the user clicked on options[which]
//1.RECUPERAR OPCION SELECCIONADA
if (which == 0){ ... }
...
});
Run Code Online (Sandbox Code Playgroud)
我在行收到警告:
builder.setIcon(icons);
Run Code Online (Sandbox Code Playgroud)
您可以尝试setView在AlertDialog.Builder.
1.添加一个alerdialog_layout作为视图。
2.ListView在里面使用。
3.setView用于向其添加数据。
笔记
如果要使用动态图标,可以使用BaseAdapter.
alerdialog_layout
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ListView
android:id="@+id/list_view"
android:layout_width="match_parent"
android:layout_height="match_parent"></ListView>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
item_dialog
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:padding="10dp"
xmlns:android="http://schemas.android.com/apk/res/android">
<ImageView
android:id="@+id/iv1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/ic_launcher_round"/>
<TextView
android:id="@+id/tv1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="right"
android:text="text1"/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
Java代码
/**
* add dialog
*/
protected void addDailog() {
CharSequence options[] = new CharSequence[]{"RETEN", "ACCIDENTE VIAL", "INUNDACION", "ABUSO", "ASALTO / VIOLENCIA"};
View view = LayoutInflater.from(this).inflate(R.layout.alerdialog_layout, null);
ListView listView = view.findViewById(R.id.list_view);
ArrayAdapter arrayAdapter = new ArrayAdapter(this, R.layout.item_dialog, R.id.tv1, options){};
listView.setAdapter(arrayAdapter);
AlertDialog dialog = new AlertDialog.Builder(this)
.setTitle("AlertDialog")
.setMessage("AlertDialog Message")
.setView(view)
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
})
.setNegativeButton("No", null)
.create();
dialog.show();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2980 次 |
| 最近记录: |