你的位置:首页 > 操作系统

[操作系统]Android之AlertDialog应用


Android 中的对话框 dialog

对话框对于应用是必不可少的一个组件,在Android中也不例外,用于提示重要信息... 

 

Android提供了丰富的对话框支持,它提供了4种常用的对话框形式:

  • AlertDialog:警告对话框,使用最广泛功能最丰富的一个对话框
  • ProgressDialog:进度条对话框,只是对进度条进行了简单的封装
  • DatePickerDialog:日期对话框
  • TimePickerDialog:时间对话框

 

这里简单介绍 AlertDialog 的使用方法:

 

activity_main 布局文件

 1 <??> 2 <RelativeLayout ="http://schemas.android.com/apk/res/android" 3   ="http://schemas.android.com/tools" 4   android:layout_width="match_parent" 5   android:layout_height="match_parent" 6   android:paddingBottom="@dimen/activity_vertical_margin" 7   android:paddingLeft="@dimen/activity_horizontal_margin" 8   android:paddingRight="@dimen/activity_horizontal_margin" 9   android:paddingTop="@dimen/activity_vertical_margin"10   tools:context="com.dragon.android.alertdialog.MainActivity">11 12   <Button13     android:layout_width="wrap_content"14     android:layout_height="wrap_content"15     android:text="massage"16     android:id="@+id/bt_msg"17     android:layout_alignParentTop="true"18     android:layout_centerHorizontal="true" />19 20   <Button21     android:layout_width="wrap_content"22     android:layout_height="wrap_content"23     android:text="sure"24     android:id="@+id/bt_sure"25     android:layout_below="@+id/bt_msg"26     android:layout_alignRight="@+id/bt_msg"27     android:layout_alignEnd="@+id/bt_msg" />28 29   <Button30     android:layout_width="wrap_content"31     android:layout_height="wrap_content"32     android:text="EditText"33     android:id="@+id/bt_editText"34     android:layout_below="@+id/bt_sure"35     android:layout_alignLeft="@+id/bt_sure"36     android:layout_alignStart="@+id/bt_sure" />37 38   <Button39     android:layout_width="wrap_content"40     android:layout_height="wrap_content"41     android:text="singlechoice"42     android:id="@+id/bt_singleChoice"43     android:layout_below="@+id/bt_editText"44     android:layout_centerHorizontal="true" />45 46   <Button47     android:layout_width="wrap_content"48     android:layout_height="wrap_content"49     android:text="mutichoice"50     android:id="@+id/bt_multiChoice"51     android:layout_below="@+id/bt_singleChoice"52     android:layout_centerHorizontal="true" />53 54   <Button55     android:layout_width="wrap_content"56     android:layout_height="wrap_content"57     android:text="imageview"58     android:id="@+id/bt_imageView"59     android:layout_below="@+id/bt_multiChoice"60     android:layout_centerHorizontal="true" />61 </RelativeLayout>

activity_main

MainActivity

 1 package com.dragon.android.alertdialog; 2  3 import android.content.DialogInterface; 4 import android.os.Bundle; 5 import android.support.v7.app.AlertDialog; 6 import android.support.v7.app.AppCompatActivity; 7 import android.view.View; 8 import android.widget.EditText; 9 import android.widget.ImageView;10 11 public class MainActivity extends AppCompatActivity implements View.OnClickListener {12 13   @Override14   protected void onCreate(Bundle savedInstanceState) {15     super.onCreate(savedInstanceState);16     setContentView(R.layout.activity_main);17     initView();18   }19 20   private void initView() {21     findViewById(R.id.bt_msg).setOnClickListener(this);22     findViewById(R.id.bt_sure).setOnClickListener(this);23     findViewById(R.id.bt_editText).setOnClickListener(this);24     findViewById(R.id.bt_singleChoice).setOnClickListener(this);25     findViewById(R.id.bt_multiChoice).setOnClickListener(this);26     findViewById(R.id.bt_imageView).setOnClickListener(this);27   }28 29   @Override30   public void onClick(View v) {31     AlertDialog.Builder builder = new AlertDialog.Builder(this);32     switch (v.getId()) {
33 case R.id.bt_msg:34 builder35 .setTitle("Title") // 设置标题36 .setMessage("this is a massage") // 设置提示信息37 .setPositiveButton("sure", null) // 参数1:按钮名;参数2:监听器38 .show();39 break;
40 case R.id.bt_sure:41 builder42 .setTitle("Sure")43 .setMessage("Sure?")44 .setPositiveButton("sure", null)45 .setNegativeButton("cancel", null)46 .show();47 break;
48 case R.id.bt_editText:49 builder50 .setTitle("Please input")51 .setView(new EditText(this)) // 此方法显示一个View52 .setPositiveButton("sure", null)53 .setNegativeButton("cancel", null)54 .show();55 break;
56 case R.id.bt_singleChoice:57 builder58 .setTitle("Please choice")59 .setSingleChoiceItems(new String[]{"A", "B", "C"}, 0,60 new DialogInterface.OnClickListener() {61 @Override62 public void onClick(DialogInterface dialog, int which) {63 // 单选框,点击一个则自动退出64 dialog.dismiss();65 }66 }) // 参数1:选择框的选项数;参数2:选择的选项ID;参数3:监听器67 .setNegativeButton("cancel", null)68 .show();69 break;
70 case R.id.bt_multiChoice:71 builder72 .setTitle("Please choice")73 .setMultiChoiceItems(new String[]{"A", "B", "C"}, null, null) // 类同单选74 .setPositiveButton("sure", null)75 .setNegativeButton("cancel", null)76 .show();77 break;
78 case R.id.bt_imageView:79 ImageView imageView = new ImageView(this);80 imageView.setImageResource(R.mipmap.ic_launcher); // 设置图片资源81 builder82 .setTitle("Image")83 .setView(imageView) // 此方法显示一个View84 .setPositiveButton("sure", null)85 .show();86 break;87 }88 }89 }