package com.easyway.android.diaglogs; import android.app.Activity; import android.app.AlertDialog; import android.app.AlertDialog.Builder; import android.content.DialogInterface; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; /** * * Android 对话框(Dialog)大全 建立你自己的对话框 * * Activities提供了一种方便管理的创建、保存、回复的对话框机制, * 例如 onCreateDialog(int), onPrepareDialog(int, Dialog), * showDialog(int), dismissDialog(int)等方法,如果使用这些方法的话, * Activity将通过getOwnerActivity()方法返回该Activity管理的对话框(dialog). * onCreateDialog(int):当你使用这个回调函数时,Android系统会有效的设置这个Activity * 为每个对话框的所有者,从而自动管理每个对话框的状态并挂靠到Activity上。这 * 样,每个对话框继承这个Activity的特定属性。比如,当一个对话框打开时,菜单 * 键显示为这个Activity定义的选项菜单,音量键修改Activity使用的音频流。 * showDialog(int): 当你想要显示一个对话框时,调用showDialog(int id) 方法并传递一个唯 * 一标识这个对话框的整数。当对话框第一次被请求时,Android从你的Activity中调 * 用onCreateDialog(int id),你应该在这里初始化这个对话框Dialog。这个回调方 * 法被传以和showDialog(int id)相同的ID。当你创建这个对话框后,在Activity的 * 最后返回这个对象。 * onPrepareDialog(int, Dialog):在对话框被显示之前,Android还调用了可选的回调函数 * onPrepareDialog(int id, Dialog). 如果你想在每一次对话框被打开时改变它的 * 任何属性,你可以定义这个方法。这个方法在每次打开对话框时被调用, * 而onCreateDialog(int) 仅在对话框第一次打开时被调用。如果你不定义 * onPrepareDialog(),那么这个对话框将保持和上次打开时一样。这个方法也被传递以 * 对话框的ID,和在onCreateDialog()中创建的对话框对象。 * dismissDialog(int):当你准备关闭对话框时,你可以通过对这个对话框调用dismiss()来消除它。 * 如果需要,你还可以从这个Activity中调用dismissDialog(int id) 方法,这实际上将 * 为你对这个对话框调用dismiss() 方法。 如果你想使用onCreateDialog(int id) 方法来 * 管理你对话框的状态(就如同在前面的章节讨论的那样),然后每次你的对话框消除的时候, * 这个对话框对象的状态将由该Activity保留。如果你决定不再需要这个对象或者清除该状态 * 是重要的,那么你应该调用removeDialog(int id)。这将删除任何内部对象引用而且如果 * 这个对话框正在显示,它将被消除。 * @author longgangbai * */ public class AndroidDialogActivity extends Activity { private Button btncomfire; private Button btncontext; private Button btnCustomlayout; private Button btnSimplelistItem; private Button btnmulitableItem; private Button btnSingleItem; private Button btninput; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //确认对话框 btncomfire=(Button)findViewById(R.id.btnchart); btncomfire.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v) { AlertDialog.Builder builder=new Builder(AndroidDialogActivity.this); builder.setMessage("确认退出吗?"); builder.setTitle("提示"); builder.setPositiveButton("确认", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); AndroidDialogActivity.this.finish(); } }); builder.setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }); builder.create().show(); } }); //调查对话框信息 btncontext=(Button)findViewById(R.id.btncontext); btncontext.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v) { AlertDialog.Builder builder=new Builder(AndroidDialogActivity.this); builder.setIcon(R.drawable.ic_launcher); builder.setTitle("喜好调查"); builder.setMessage("你喜欢李孝利的歌曲吗?"); builder.setPositiveButton("很喜欢", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(AndroidDialogActivity.this,"我很喜欢她的歌曲", Toast.LENGTH_LONG).show(); } }); builder.setNegativeButton("不喜欢", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(AndroidDialogActivity.this,"我很不喜欢她的歌曲", Toast.LENGTH_LONG).show(); } }); builder.setNeutralButton("一般", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(AndroidDialogActivity.this,"我有点喜欢她的歌曲,但是我喜欢她的漂亮", Toast.LENGTH_LONG).show(); } }); builder.create().show(); } }); //输入对话框信息 btninput=(Button)findViewById(R.id.btnInput); btninput.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v) { AlertDialog.Builder builder=new Builder(AndroidDialogActivity.this); builder.setTitle("请输入").setIcon(R.drawable.ic_launcher) .setView(new EditText(AndroidDialogActivity.this)) .setPositiveButton("确认", null); builder.setNegativeButton("取消", null); builder.show(); } }); //自定义视图的对话框 btnCustomlayout=(Button)findViewById(R.id.btnLayout); btnCustomlayout.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v) { //获取对话框信息 LayoutInflater inflater = getLayoutInflater(); View layout = inflater.inflate(R.layout.dialog,(ViewGroup) findViewById(R.id.dialog)); //创建对话框 new AlertDialog .Builder(AndroidDialogActivity.this) .setTitle("自定义布局") .setView(layout) //设置自定义视图对象 .setPositiveButton("确定", null) .setNegativeButton("取消", null) .show(); } }); //简单显示信息列表 btnSimplelistItem=(Button)findViewById(R.id.btnlistItems); btnSimplelistItem.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v) { new AlertDialog.Builder(AndroidDialogActivity.this) .setTitle("列表框") .setItems(new String[] { "Item1", "Item2" }, null) //设置列表信息集合 .setNegativeButton("确定", null) .show(); } }); //创建一个复选框的对话框 btnmulitableItem=(Button)findViewById(R.id.btnmulitableItems); btnmulitableItem.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v) { new AlertDialog.Builder(AndroidDialogActivity.this) .setTitle("复选框") .setMultiChoiceItems(new String[] { "Item1", "Item2" }, null, null)//设置多选项 .setPositiveButton("确定", null) .setNegativeButton("取消", null) .show(); } }); //创建一个单选项对话框 btnSingleItem=(Button)findViewById(R.id.btnSingleItems); btnSingleItem.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v) { AlertDialog.Builder builder=new Builder(AndroidDialogActivity.this); builder.setTitle("单选项") //对话框图表 .setIcon(R.drawable.ic_launcher) //设置单选框 .setSingleChoiceItems(new String[]{"Item1","Item2","Item3"}, 0, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }) .setPositiveButton("确认", null); builder.setNegativeButton("取消", null); builder.show(); } }); } }