widget(7、dialog)

dialog是android的对话框控件,包括:

  1. 警告对话框:AlertDialog
  2. 进度对话框:ProgressDialog
  3. 日期选择对话框:DatePickerDialog
  4. 时间选择对话框:TimePickerDialog
  5. 自定义对话框:从Dialog继承

通过AlertDialog,我们可以实现普通式、列表式及自定义等。下面给出两个典型例子:

  • 普通式:
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.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 t = Toast.makeText(getApplicationContext(), "确定", Toast.LENGTH_LONG);
        t.show();
    }
});

builder.setNegativeButton("取消", new DialogInterface.OnClickListener(){  //取消按键的事件触发

    @Override
    public void onClick(DialogInterface dialog, int which) {
        Toast t = Toast.makeText(getApplicationContext(), "取消", Toast.LENGTH_LONG);
         t.show();
        }
    });

    builder.create().show();            
  • 自定义输入

    • 定义一个layout
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" >

    <EditText
        android:id="@+id/editText1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="21dp"
        android:ems="10" />

    <EditText
        android:id="@+id/editText2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/editText1"
        android:layout_below="@+id/editText1"
        android:layout_marginTop="15dp"
        android:ems="10"
        android:inputType="textPersonName" />

</RelativeLayout>
    • 在构造时动态生成视图,如下:
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
LayoutInflater inflater = (LayoutInflater)getSystemService(LAYOUT_INFLATER_SERVICE);
final View view = inflater.inflate(R.layout.dialog_input, null);
builder.setIcon(R.drawable.ic_launcher);
builder.setTitle("输入框");
builder.setView(view);  
时间: 2024-12-15 01:51:56

widget(7、dialog)的相关文章

Android应用Activity、Dialog、PopWindow窗口显示机制及源码分析

[工匠若水 http://blog.csdn.net/yanbober 转载烦请注明出处,尊重劳动成果] 1 背景 之所以写这一篇博客的原因是因为之前有写过一篇<Android应用setContentView与LayoutInflater加载解析机制源码分析>,然后有人在文章下面评论和微博私信中问我关于Android应用Dialog.PopWindow.Toast加载显示机制是咋回事,所以我就写一篇文章来分析分析吧(本文以Android5.1.1 (API 22)源码为基础分析),以便大家在应

Android应用Activity、Dialog、PopWindow、Toast窗体加入机制及源代码分析

[工匠若水 http://blog.csdn.net/yanbober 转载烦请注明出处.尊重劳动成果] 1 背景 之所以写这一篇博客的原因是由于之前有写过一篇<Android应用setContentView与LayoutInflater载入解析机制源代码分析>.然后有人在文章以下评论和微博私信中问我关于Android应用Activity.Dialog.PopWindow载入显示机制是咋回事,所以我就写一篇文章来分析分析吧(本文以Android5.1.1 (API 22)源代码为基础分析),以

WindowManager--Toast、activity、dialog的实际渲染者

刚刚利用WindowManager写了个对话框,如下图.WindowManager是视图实际的渲染者,Toast.activity.dialog都是通过它进行显示的.利用它我们可以很容易的实现诸如:立体UI.悬浮效果.引导页中的app使用说明等等. WindowManager是Android中一个重要的服务(Service ).WindowManager Service 是全局的,是唯一的.它将用户的操作,翻译成为指令,发送给呈现在界面上的各个Window.Activity会将顶级的控件注册到

Android应用Activity、Dialog、PopWindow、Toast窗口添加机制及源码分析

1  背景 之所以写这一篇博客的原因是因为之前有写过一篇<Android应用setContentView与LayoutInflater加载解析机制源码分析>, 然后有人在文章下面评论和微博私信中问我关于Android应用Activity.Dialog.PopWindow加载显示机制是咋回事,所以我就写一 篇文章来分析分析吧(本文以Android5.1.1 (API 22)源码为基础分析),以便大家在应用层开发时不再迷糊. PS一句:不仅有人微博私信我这个问题,还有人问博客插图这些是用啥画的,这

【Flutter学习】基本组件之弹窗和提示(SnackBar、BottomSheet、Dialog)

一,概述 Flutter中的操作提示主要有这么几种 SnackBar.BottomSheet.Dialog,因为 Dialog样式比较多,放最后讲好了 二,介绍 SnackBar SnackBar的源码相对简单 构造函数 const SnackBar({ Key key, @required this.content, // 提示信息 this.backgroundColor, // 背景色 this.action, // SnackBar 尾部的按钮,用于一些回退操作等 this.durati

一、dialog.show()引起的android.view.WindowManager$BadTokenException错误

错误日志 ? 1 2 3 4 5 6 7 android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.BinderProxy@427b7270 is not valid; is your activity running?     at android.view.ViewRootImpl.setView(ViewRootImpl.java:653)     at android.vi

基于element-ui的后台系统表格、dialog、筛选、自定义按钮、分页的一次性封装

暂未剔除部分业务代码,初版1.0,还有待升级 table部分 1 <template> 2 <div id="myTable"> 3 <filterGroup :filterList="filterConfig.filter_list" :search_list="filterConfig.search_list" v-on="{getFilterData:filterData}"><

三个不常用的HTML元素:&lt;details&gt;、&lt;summary&gt;、&lt;dialog&gt;

前面的话 HTML5不仅新增了语义型区块级元素及表单类元素,也新增了一些其他的功能性元素,这些元素由于浏览器支持等各种原因,并没有被广泛使用 文档描述 <details>主要用于描述文档或文档某个部分的细节,与<summary>配合使用可以为<details>定义标题.标题是可见的,用户点击标题时,显示出details [注意]这两个标签只有chrome和opera支持 <details> 该标签仅有一个open属性,用来定义details是否可见(默认为不

widget(8、ProgressBar)

ProgressBar为进度条,在andoird中有长条形.圆形等,用以呈现事件进度.主要定义如下: <ProgressBar android:id="@+id/progressBar1" style="?android:attr/progressBarStyleHorizontal" android:layout_width="fill_parent" android:layout_height="wrap_content&qu