【Android】对话框AlertDialog的使用(一)

来源:互联网 发布:淘宝满就减怎么设置 编辑:程序博客网 时间:2024/04/29 02:12

对话框的创建和使用有多种方式,在此,只使用最简单的方式,就是直接给按钮增加监听器,然后,弹出所需要的对话框。

一、普通提示对话框

findViewById(R.id.button1).setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubnew AlertDialog.Builder(DialogDemo.this).setIcon(R.drawable.gong1).setTitle("提示文字Dialog").setPositiveButton("确定",new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog,int which) {// TODO Auto-generated method stub}}).setNegativeButton("取消", null).create().show();}});

效果图




二、长文字对话框

findViewById(R.id.button2).setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubnew AlertDialog.Builder(DialogDemo.this).setIcon(R.drawable.gong2).setTitle("提示信息Dialog").setMessage("发现新版本(1.0.1.260)"+ "\n"+ "【全新界面】 全新多屏首页,界面更友好、美观、流程\n"+ "【无线文件传输】 点击无线传输按钮,访问提示地址,可在同一无线网内实现手机和电脑文件互传\n"+ "【快捷面板】 快捷面板全新改造,整合多项功能按钮,图标更大更直观,强大易用\n"+ "    是否升级最新版本?").setPositiveButton("确定",new DialogInterface.OnClickListener() {public void onClick(DialogInterface dialog,int whichButton) {/* User clicked OK so do some stuff */}}).setNeutralButton("中间按钮", null).setNegativeButton("取消", null).create().show();}});

效果图


三、单选项选择对话框

findViewById(R.id.button3).setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubnew AlertDialog.Builder(DialogDemo.this).setTitle("单选Dialog").setItems(R.array.dialog_arrays,new DialogInterface.OnClickListener() {public void onClick(DialogInterface dialog,int which) {String[] items = getResources().getStringArray(R.array.dialog_arrays);Toast.makeText(DialogDemo.this,"You selected: " + which+ " , " + items[which],1000).show();}}).create().show();}});

其中,需要在res/values文件夹下新建arrays.xml:
<?xml version="1.0" encoding="utf-8"?><resources>    <string-array name="dialog_arrays">        <item >浙江</item>        <item >山西</item>        <item >山东</item>        <item >河南</item>        <item >河北</item>        <item >广东</item>    </string-array>    </resources>

效果图


四、进度条对话框

先定义全局变量:
private ProgressDialog pDialog;private Handler handler;private int mProgress;

findViewById(R.id.button4).setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubpDialog = new ProgressDialog(DialogDemo.this);pDialog.setIcon(R.drawable.gong3);pDialog.setTitle("进度条Dialog");pDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);pDialog.setMax(100);pDialog.setButton(DialogInterface.BUTTON_POSITIVE, "左键",new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog,int which) {// TODO Auto-generated method stub}});pDialog.setButton(DialogInterface.BUTTON_NEGATIVE, "右键",new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog,int which) {// TODO Auto-generated method stub}});pDialog.setProgress(0);pDialog.show();mProgress = 0;// 执行完毕后给handler发送一个空消息handler.sendEmptyMessage(0);}});handler = new Handler() {@Overridepublic void handleMessage(Message msg) {super.handleMessage(msg);if (mProgress >= 100) {pDialog.dismiss();} else {mProgress++;// ProgressBar进度值加1pDialog.incrementProgressBy(1);// 延迟100毫秒后发送空消息handler.sendEmptyMessageDelayed(0, 100);}}};

效果图


五、单独的进度条

只需要将上面的对话框中,一些无用的按钮和标题去掉即可。
findViewById(R.id.button5).setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubpDialog = new ProgressDialog(DialogDemo.this);pDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);pDialog.setMax(100);pDialog.setProgress(0);pDialog.show();mProgress = 0;handler.sendEmptyMessage(0);}});handler = new Handler() {@Overridepublic void handleMessage(Message msg) {super.handleMessage(msg);if (mProgress >= 100) {pDialog.dismiss();} else {mProgress++;// ProgressBar进度值加1pDialog.incrementProgressBy(1);// 延迟100毫秒后发送空消息handler.sendEmptyMessageDelayed(0, 100);}}};

效果图