From:http://blog.csdn.net/dazlly/article/details/7869204#
首先简单对话框,分为三部分:标题,内容和下面的按键,先看没有按键的对话框的声明方式:
[java] view plain copy print ?
- new AlertDialog.Builder(Main.this).setTitle("标题").setMessage("内容").show();
new AlertDialog.Builder(Main.this).setTitle("标题").setMessage("内容").show();
对话框一共有三个按键,分别对应肯定否定和中立:
[java] view plain copy print ?
- public AlertDialog.Builder setPositiveButton (CharSequence text, DialogInterface.OnClickListener listener)
- public AlertDialog.Builder setNegativeButton (CharSequence text, DialogInterface.OnClickListener listener)
- public AlertDialog.Builder setNeutralButton (CharSequence text, DialogInterface.OnClickListener listener)
public AlertDialog.Builder setPositiveButton (CharSequence text, DialogInterface.OnClickListener listener)
public AlertDialog.Builder setNegativeButton (CharSequence text, DialogInterface.OnClickListener listener)
public AlertDialog.Builder setNeutralButton (CharSequence text, DialogInterface.OnClickListener listener)
具体点击哪个按钮触发的事件在DialogInterface.OnClickListener对象里面编写,所以完整的简单对话框就是在第一条代码基础上再加上某个或某几个按键:
[java] view plain copy print ?
- new AlertDialog.Builder(Main.this).setTitle("标题").setMessage("内容")
- .setPositiveButton("OK", new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
-
- }
- }).show();
new AlertDialog.Builder(Main.this).setTitle("标题").setMessage("内容")
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//这里编写点击对话框按钮后触发的事件
}
}).show();
简单对话框很简单,然后继续学习选项对话框,先想象一下选项对话框和简单对话框的不同,好像就是中间的内容格式不同和没有下面的三个按钮,就是这个了,设置选项和点击监控:
[java] view plain copy print ?
- public AlertDialog.Builder setItems (CharSequence[] items, DialogInterface.OnClickListener listener)
public AlertDialog.Builder setItems (CharSequence[] items, DialogInterface.OnClickListener listener)
第二个参数已经在简单对话框中学习过是定义点击事件的触发的,那么第一个参数是什么意思,又要从哪里获取呢?其实,这个参数就是我们说要展示的选项对话框内的“选项”,是从values/*.xml中获取的:
[html] view plain copy print ?
- <array name="sports">
- <item name="basketball">篮球</item>
- <item name="football">足球</item>
- <item name="baseball">棒球</item>
- <item name="pingpang">乒乓球</item>
- </array>
<array name="sports">
<item name="basketball">篮球</item>
<item name="football">足球</item>
<item name="baseball">棒球</item>
<item name="pingpang">乒乓球</item>
</array>
看下完整选项对话框的代码:
[java] view plain copy print ?
- new AlertDialog.Builder(Main.this)
- .setTitle("标题")
- .setItems(R.array.sports,
- new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog,
- int itemId) {
-
- }
- }).show();
new AlertDialog.Builder(Main.this)
.setTitle("标题")
.setItems(R.array.sports,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int itemId) {
//这里编写点击对话框按钮后触发的事件
}
}).show();
也是很简单吧,这里需要注意的是setItems可以换成其他形式,比如复选框setMultiChoiceItems等,自己动动手试试吧,最后在看个更简单的短暂显示提示框:Toast
[java] view plain copy print ?
- Toast.makeText(Main.this, "就这么简单", Toast.LENGTH_SHORT).show();
Toast.makeText(Main.this, "就这么简单", Toast.LENGTH_SHORT).show();
第三个参数还可以选择Toast.LENGTH_LONG,显示的时间更加长一点。
三种对话框结合起来写个简单示例:
[java] view plain copy print ?
- package com.dazlly;
-
- import android.os.Bundle;
- import android.view.View;
- import android.widget.Button;
- import android.widget.Toast;
- import android.app.Activity;
- import android.app.AlertDialog;
- import android.content.DialogInterface;
-
- public class Main extends Activity {
-
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
-
- findViews();
-
- setListener();
- }
-
- private Button firstButton;
-
- private void findViews() {
- firstButton = (Button) findViewById(R.id.firstButton);
- }
-
- private void setListener() {
- firstButton.setOnClickListener(show);
- }
-
- private Button.OnClickListener show = new Button.OnClickListener() {
- @Override
- public void onClick(View arg0) {
- new AlertDialog.Builder(Main.this)
- .setTitle(R.string.title)
- .setMessage(R.string.message)
- .setNegativeButton(R.string.back,
- new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog,
- int which) {
- }
- })
- .setPositiveButton(R.string.go,
- new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog,
- int itemId) {
- showList();
- }
- }).show();
- }
- };
-
- private void showList() {
-
- new AlertDialog.Builder(Main.this)
- .setTitle(R.string.list)
- .setItems(R.array.sports,
- new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog,
- int which) {
- String[] list = getResources().getStringArray(
- R.array.sports);
- Toast.makeText(Main.this, "你选择了" + list[which],
- Toast.LENGTH_SHORT).show();
- }
- }).show();
- }
- }
package com.dazlly;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
public class Main extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
findViews();
setListener();
}
private Button firstButton;
private void findViews() {
firstButton = (Button) findViewById(R.id.firstButton);
}
private void setListener() {
firstButton.setOnClickListener(show);
}
private Button.OnClickListener show = new Button.OnClickListener() {
@Override
public void onClick(View arg0) {
new AlertDialog.Builder(Main.this)
.setTitle(R.string.title)
.setMessage(R.string.message)
.setNegativeButton(R.string.back,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
}
})
.setPositiveButton(R.string.go,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int itemId) {
showList();
}
}).show();
}
};
private void showList() {
new AlertDialog.Builder(Main.this)
.setTitle(R.string.list)
.setItems(R.array.sports,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
String[] list = getResources().getStringArray(
R.array.sports);
Toast.makeText(Main.this, "你选择了" + list[which],
Toast.LENGTH_SHORT).show();
}
}).show();
}
}