Android对话框Dialog详解
2013-06-25 21:19
344 查看
Android对话框Dialog详解
一个对话框一般是出现在当前Activity之上的小窗口,提示用户做出决策或者输入额外的信息,要求用户采取行动才能继续进行。下面这里通过一个列子来显示各种对话框,图例:
复选对话框:
自定义对话框:
进度对话框:
main.xml
custom.xml
MainActivity.java
一个对话框一般是出现在当前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; } } }
相关文章推荐
- 【Android UI设计】Dialog对话框详解(一)
- Android对话框Dialog详解
- Android Dialog 对话框详解及示例代码
- Android 对话框(Dialog)大全详解及示例代码
- Android 盘点所有Dialog 对话框 大合集 详解
- Android UI控件详解-Dialog(对话框合集)
- 2017最新详解Android中对话框之DatePickerDialog与TimePickerDialog
- 8种android 对话框(Dialog)使用方法详解
- 详解Android中提示对话框(ProgressDialog和DatePickerDialog和TimePickerDialog&PopupWindow)
- Android AlertDialog对话框详解及实例
- 【Android UI设计】Dialog对话框详解(二)
- Android对话框Dialog_详解
- Android入门教程五十之AlertDialog(对话框)详解
- Android 盘点所有Dialog 对话框 大合集 详解
- Android 自定义Dialog对话框详解
- 详解Android Dialog对话框的五种形式
- Android 盘点所有Dialog 对话框 大合集 详解
- Android Dialog对话框详解
- Android时间对话框TimePickerDialog详解
- Android日期选择器对话框DatePickerDialog使用详解