一、AlertDialog创建简单列表项对话框核心代码如下:
final String items[] = getResources().getStringArray(R.array.books);
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setTitle("简单的列表项对话框").setIcon(R.mipmap.ic_launcher)
.setItems(items, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "选中了"+items[which], Toast.LENGTH_SHORT).show();
}
});
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "点击了确定", Toast.LENGTH_SHORT).show();
}
});
builder.setNegativeButton("取消",null);
AlertDialog dialog = builder.create();
dialog.show();</span>
其中数组books为xml资源,定义在res/values/array.xml中,代码如下:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="books">
<item>基础英语</item>
<item>工程数学</item>
<item>高等计算机网络</item>
<item>软件安全</item>
</string-array>
</resources></span>
getResource().getStringArray(R.array.X)可以从xml数组文件中获得字符串数组
二、AlertDialog创建单选列表项对话框
将builder.setItems()改为builder.setSingleItems(items[],int(默认选中项的索引),listener);
三、AlertDialog创建多选列表项对话框
将上面例子中的builder.setItems()改为builder.setMultiChoiceItems(items[],new boolean[]{false,true,true}); //此为默认选中2、3项
自定义列表项对话框还可以使用builder.setAdapter(Adapter adapter,listener)来填充对话框中的内容
四、自定义View对话框
1.先建立layout文件,作为自定义View对话框的内容界面
2.使用View view = getLayoutInflater.inflate(R.layout.x,null) 获得你定义的界面
3.使用builder.setView(view)即可
注:对话框风格的窗口设置
在AndroidManifest.xml文件中对相应的Activity的主题设置成对话框风格的主题