对话框既可以用于弹出显示一些信息,也可以作为一个屏幕活动,用于简单的功能处理(登录系统)。
首先做个列表下对话框
创建个data.xml用于保存对话框选项
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="data">
<item>beijing</item>
<item>shanghai</item>
<item>nanjin</item>
<item>wuhan</item>
</string-array>
</resources>
接下来activity中的主要代码段如下:
new AlertDialog.Builder(MainActivity.this)
.setTitle("你喜欢的城市是?") //设置标题
.setIcon(R.drawable.ic_launcher)//设置对话框图标
.setItems(R.array.data, //设置对话框选项 这边还可以选择使用setSingleChoiceItems单选项对话框
//setMultiChoiceItems复选框对话框
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
String[] res = getResources()
.getStringArray(R.array.data);//获取xml文件中的选项资源
String text = "您选择了" + res[which];
Toast.makeText(MainActivity.this, text,
Toast.LENGTH_LONG).show();
}
})
.setPositiveButton("确定",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
// TODO Auto-generated method stub
}
})
.setNegativeButton("取消",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
}
}).show();
上面的例子包含了对话框的基础功能,下面介绍种文本对话框,通过布局文件实现
先上效果图
一个登录对话框,首先在布局文件中配置个登录界面的布局
下面通过activity调用布局
LayoutInflater factory = LayoutInflater.from(MainActivity.this);
View view = factory.inflate(R.layout.dialog, null);//加载布局文件
new AlertDialog.Builder(MainActivity.this)
.setTitle("登录")
.setIcon(R.drawable.ic_launcher)
.setView(view)
.setPositiveButton("确定",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
// TODO Auto-generated method stub
}
})
.setNegativeButton("取消",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
}
}).show();