• Android之AlertDialog应用


    Android 中的对话框 dialog

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

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

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

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

    activity_main 布局文件

     1 <?xml version="1.0" encoding="utf-8"?>
     2 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     3     xmlns:tools="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     <Button
    13         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     <Button
    21         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     <Button
    30         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     <Button
    39         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     <Button
    47         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     <Button
    55         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     @Override
    14     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     @Override
    30     public void onClick(View v) {
    31         AlertDialog.Builder builder = new AlertDialog.Builder(this);
    32         switch (v.getId()) {
    33 case R.id.bt_msg: 34 builder 35 .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 builder 42 .setTitle("Sure") 43 .setMessage("Sure?") 44 .setPositiveButton("sure", null) 45 .setNegativeButton("cancel", null) 46 .show(); 47 break;
    48 case R.id.bt_editText: 49 builder 50 .setTitle("Please input") 51 .setView(new EditText(this)) // 此方法显示一个View 52 .setPositiveButton("sure", null) 53 .setNegativeButton("cancel", null) 54 .show(); 55 break;
    56 case R.id.bt_singleChoice: 57 builder 58 .setTitle("Please choice") 59 .setSingleChoiceItems(new String[]{"A", "B", "C"}, 0, 60 new DialogInterface.OnClickListener() { 61 @Override 62 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 builder 72 .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 builder 82 .setTitle("Image") 83 .setView(imageView) // 此方法显示一个View 84 .setPositiveButton("sure", null) 85 .show(); 86 break; 87 } 88 } 89 }
  • 相关阅读:
    第一章:进销存系统基本功能
    SpringBoot 整合 Docker
    Java的脚本机制、编译器API
    Java 定时任务
    监听文件修改的四种方法
    SpringBoot Actuator — 埋点和监控
    Kafka消息队列
    OpenSSL配置HTTPS
    Java 国际化
    备忘录模式
  • 原文地址:https://www.cnblogs.com/xmcx1995/p/5845860.html
Copyright © 2020-2023  润新知