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

Android对话框Dialog详解

2013-06-25 21:19 344 查看
Android对话框Dialog详解
一个对话框一般是出现在当前Activity之上的小窗口,提示用户做出决策或者输入额外的信息,要求用户采取行动才能继续进行。下面这里通过一个列子来显示各种对话框,图例:



复选对话框:



自定义对话框:



进度对话框:



main.xml
<RelativeLayout 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" >

<Button
android:id="@+id/button1"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:text="显示简单对话框" />

<Button
android:id="@+id/button2"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_below="@+id/button1"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:text="显示列表对话框" />

<Button
android:id="@+id/button3"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_below="@+id/button2"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:text="显示单选列表对话框" />

<Button
android:id="@+id/button4"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_below="@+id/button3"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:text="显示复选列表对话框" />

<Button
android:id="@+id/button5"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_below="@+id/button4"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:text="显示自定义对话框" />

<Button
android:id="@+id/button6"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_below="@+id/button5"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:text="显示进度对话框" />

</RelativeLayout>


custom.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#3366ff"
android:orientation="horizontal"
android:padding="10dp" >

<ImageView
android:id="@+id/image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="10dp" />

<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />

</LinearLayout>


MainActivity.java
package cn.android.dialog;

import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.content.DialogInterface;

public class MainActivity extends Activity implements OnClickListener {

private Button btn1, btn2, btn3, btn4, btn5, btn6;
private final CharSequence[] items = { "北京", "上海", "广东", "深圳" };

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn1 = (Button) findViewById(R.id.button1);
btn2 = (Button) findViewById(R.id.button2);
btn3 = (Button) findViewById(R.id.button3);
btn4 = (Button) findViewById(R.id.button4);
btn5 = (Button) findViewById(R.id.button5);
btn6 = (Button) findViewById(R.id.button6);

btn1.setOnClickListener(this);
btn2.setOnClickListener(this);
btn3.setOnClickListener(this);
btn4.setOnClickListener(this);
btn5.setOnClickListener(this);
btn6.setOnClickListener(this);
}

@Override
public void onClick(View v) {
switch (v.getId()) {

case R.id.button1:// 显示简单对话框
AlertDialog.Builder builder = new AlertDialog.Builder(
MainActivity.this);
builder.setTitle("提示")
.setMessage("你确定要删除嘛!")
.setIcon(R.drawable.ic_launcher)
.setPositiveButton("确定",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
dialog.dismiss();
}
})
.setNegativeButton("取消",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {

}
})
.setNeutralButton("忽略",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {

}
});
AlertDialog alertDialog = builder.create();
alertDialog.show();
break;

case R.id.button2:// 显示列表对话框
AlertDialog.Builder builder2 = new AlertDialog.Builder(
MainActivity.this);
builder2.setTitle("请选择以下城市").setItems(items,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, items[which],
Toast.LENGTH_LONG).show();
}
});
AlertDialog alertDialog2 = builder2.create();
alertDialog2.show();
break;

case R.id.button3:// 显示单选列表对话框
AlertDialog.Builder builder3 = new AlertDialog.Builder(
MainActivity.this);
builder3.setTitle("请选择以下城市").setSingleChoiceItems(items, -1,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, items[which],
Toast.LENGTH_LONG).show();
dialog.dismiss();
}
});
AlertDialog alertDialog3 = builder3.create();
alertDialog3.show();
break;

case R.id.button4:// 显示复选列表对话框
final boolean[] selected = { false, false, false, false };
AlertDialog.Builder builder4 = new AlertDialog.Builder(
MainActivity.this);
builder4.setTitle("请选择以下城市")
.setMultiChoiceItems(items, selected,
new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which, boolean isChecked) {
selected[which] = isChecked;
}
})
.setPositiveButton("确定",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
StringBuffer buffer = new StringBuffer();
for (int i = 0; i < selected.length; i++) {
if (selected[i] == true) {
buffer.append(items[i]).append(",");
}
}
if (!buffer.toString().trim().equals("")) {
buffer.deleteCharAt(buffer.length() - 1);
Toast.makeText(MainActivity.this,
buffer.toString(),
Toast.LENGTH_LONG).show();
} else {
Toast.makeText(MainActivity.this,
"你没有选择任何城市!", Toast.LENGTH_LONG)
.show();
}
}
});
AlertDialog alertDialog4 = builder4.create();
alertDialog4.show();
break;

case R.id.button5:// 显示自定义对话框
Dialog dialog = new Dialog(MainActivity.this);
View view = LayoutInflater.from(MainActivity.this).inflate(
R.layout.custom, null);
dialog.setContentView(view);
dialog.setTitle("自定义对话框");
TextView textView = (TextView) view.findViewById(R.id.text);
ImageView imageView = (ImageView) view.findViewById(R.id.image);

textView.setText("This is a customDialog!");
imageView.setImageResource(R.drawable.ic_launcher);
dialog.show();
break;

case R.id.button6:// 显示进度对话框
ProgressDialog progressDialog = new ProgressDialog(
MainActivity.this);
progressDialog.setTitle("下载提示");
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
progressDialog.show();
break;
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: