Android之对话框Dialog

时间:2022-11-01 16:24:05

        今天继续Android学习之旅之对话框DIalog的记录,主要包括三个方面:1.普通提示弹框;2.退出弹框;3.弹框选择内容。

        1.普通弹框

        正常的弹框包括确认、取消两个操作,有的还有查看详情操作。弹框事件代码如下:

private class OnClickListenerDelete implements OnClickListener {

@Override
public void onClick(View v) {
Dialog dialog = new AlertDialog.Builder(MainActivity.this)
.setIcon(R.drawable.delimg)
.setTitle("删除确认")
.setMessage("确定要删除吗")
.setPositiveButton("删除",
new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog,
int which) {
Toast.makeText(MainActivity.this, "已经删除成功",
Toast.LENGTH_LONG).show();

}
})
.setNeutralButton("查看详情",
new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog,
int which) {
Toast.makeText(MainActivity.this, "这是信息详情",
Toast.LENGTH_LONG).show();

}
})
.setNegativeButton("取消",
new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog,
int which) {
Toast.makeText(MainActivity.this, "您已取消操作",
Toast.LENGTH_LONG).show();

}
}).create();
dialog.show();

}
}
        注意:1.要想实例化Dialog类,需要依靠AlertDialog类的内部类AlertDialog.Builder实例化;2.三个按钮的设置分别不同,setPositiveButton表示确认按钮,setNegativeButton表示取消操作按钮,setNeutralButton表示普通的按钮。

        运行效果:

Android之对话框Dialog

        2.退出弹框

        一般软件在退出时或者按返回键时都会弹框提示下是否退出,以防误操作。首先点击按钮退出的提示信息代码如下:

private class OnClickListenerExit implements OnClickListener {

@Override
public void onClick(View v) {
MainActivity.this.exit();

}
}

private void exit() {
Dialog dialog = new AlertDialog.Builder(MainActivity.this)
.setTitle("退出程序").setMessage("确定要退出程序吗?")
.setIcon(R.drawable.warnimg)
.setPositiveButton("确定", new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
MainActivity.this.finish();

}
})
.setNegativeButton("取消", new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "您已取消操作",
Toast.LENGTH_LONG).show();

}
}).create();
dialog.show();
}
        其中MainActivity.this.finish();表示退出程序,可以参考Android生命周期相关的知识。

        如何接收用户按返回键呢,只需要重写onKeyDown函数,代码如下:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
this.exit();
}
return false;
}

        运行效果:

Android之对话框Dialog

        3.弹框选择内容

        例如点击按钮选择默认城市,Dialog也提供了这样的功能,代码如下:

//城市数据
private String cityArray[] = new String[] { "江苏", "浙江", "上海" };
private class OnClickListenerSelectCity implements OnClickListener {

@Override
public void onClick(View v) {
Dialog dialog = new AlertDialog.Builder(MainActivity.this)
.setIcon(R.drawable.cityimg)
.setTitle("选择城市")
.setItems(cityArray, new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
String selectInfo = cityArray[which];
Toast.makeText(MainActivity.this,
"您选择的城市是:" + selectInfo, 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) {
// TODO Auto-generated method stub

}
}).create();
dialog.show();

}
}
         运行效果:

Android之对话框Dialog

            

            项目源码下载