您的位置:首页 > 移动开发 > Android开发

Android中的几种对话框(AlertDialog)

2016-06-30 21:16 597 查看

Android中常用的对话框有【确认/取消】对话框 ,带3个按钮的对话框,列表对话框,单选列表对话框,多选列表对话框,水平进度对话框等。其中进度对话框由ProgressDialog创建,其他几种由AlertDialog.Builder创建。

常用方法:

setIcon 设置对话框标题栏左侧的那个图标

setTitle 设置对话框标题栏的提示信息

setMessage 设置对话框主体部分的提示信息

setPositiveButton 设置确定按钮

setNegativeButton 设置取消按钮

setCancelable设置对话框在点击返回键时是否会关闭

show 显示对话框

xml代码如下:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.example.dialog.MainActivity" >

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="click1"
android:text="确定取消对话框" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="click2"
android:text="带3个按钮的对话框" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="click3"
android:text="单选对话框" />

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="click4"
android:text="多选对话框" />

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="click5"
android:text="进度条对话框" />

</LinearLayout>


主程序代码如下

package com.example.dialog;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.app.AlertDialog.Builder;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.content.DialogInterface.OnMultiChoiceClickListener;
import android.os.Bundle;

import android.view.View;
import android.widget.Toast;

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}

public void click1(View v){
Builder builder = new AlertDialog.Builder(this);
//设置图标
builder.setIcon(android.R.drawable.ic_dialog_alert);
//设置标题
builder.setTitle("确定取消对话框");
//设置内容
builder.setMessage("确定取消对话框");

//设置确定按钮
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "你选择了确定", 0).show();
}
});
//设置取消按钮
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "你选择了取消", 0).show();
}
});
builder.show();
}

public void click2(View v){
Builder builder = new AlertDialog.Builder(this);
//设置图标
builder.setIcon(android.R.drawable.ic_dialog_alert);
//设置标题
builder.setTitle("确定取消对话框");
//设置内容
builder.setMessage("三个按钮的对话框");

//设置确定按钮
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "你选择了确定", 0).show();
}
});
//设置忽略按钮
builder.setNeutralButton("忽略", new OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "你选择了忽略", 0).show()
af85
;
}
});
//设置取消按钮
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "你选择了取消", 0).show();
}
});
builder.show();
}

public void click3(View v){
Builder builder = new AlertDialog.Builder(this);
//设置图标
builder.setIcon(android.R.drawable.ic_dialog_alert);
//设置标题
builder.setTitle("请选择");

final String[] items = new String[]{
"1",
"2",
"3",
"4",
};

//设置单选选项
builder.setSingleChoiceItems(items, 1, new OnClickListener() {

//dialog:触发此方法执行的那个对话框
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, items[which], 0).show();
//对话框消失
dialog.dismiss();

}
});

//显示对话框
builder.show();
}

public void click4(View v){
//创建对话框创建器
AlertDialog.Builder builder = new Builder(this);
//设置图标
builder.setIcon(android.R.drawable.ic_dialog_alert);
//设置标题
builder.setTitle("请选择");

final String[] items = new String[]{
"1",
"2",
"3",
"4",
"5",
"6"
};

final boolean[] checkedItems = new boolean[]{
true,
false,
false,
false,
false,
true
};

//设置多选选项
builder.setMultiChoiceItems(items, checkedItems, new OnMultiChoiceClickListener() {

@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
//记录用户的选择
checkedItems[which] = isChecked;
}
});
builder.setPositiveButton("确定", new OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
String text = "";
for (int i = 0; i < checkedItems.length; i++) {
text += checkedItems[i]? items[i] + ",": "";
}
Toast.makeText(MainActivity.this, text, 0).show();

}
});

builder.show();
}

public void click5(View v){
//创建进度条对话框
final ProgressDialog dialog = new ProgressDialog(this);
dialog.setTitle("正在加载中,请稍候...");
dialog.setMax(100);
dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
Thread t = new Thread(){
public void run() {
for (int i = 0; i <= 100; i++) {
dialog.setProgress(i);
try {
sleep(20);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//进度消失
dialog.dismiss();
}
};
t.start();
dialog.show();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: