Android 对话框、信息提示和菜单

对话框

标准对话框显示按钮的方法

标准对话框最多 3 个按钮。具体可查看 AlertDialog 源码。

响应标准对话框的按钮单击事件

使用 DialogInterface.OnClickListener() 方法响应标准对话框点击事件。

在对话框中显示一个列表

使用 AlertDialog.Builder.setItems 方法可以将一个 String 数组以列表形式显示在对话框中。

进度条对话框的使用方法

类 ProgressDialog. 具体可查看官方API或搜索

在标准对话框中任意放置可视组件

AlertDialog.Builder.setView 方法可以在对话框上显示一个 View, 可以用 Java 代码进行绘制,也可以从布局文件装载。

在 Android 中显示对话框的方式

- 1 直接使用 AlertDialog

- 2 把 Activity 当成 Dialog 使用

- 3 Activity.showDialog 方法显示对话框

设置对话框的位置

使用 setGravity 方法。具体是先要用一个 Window window = alertDialog.getWindow(); window.setGravity();

改变对话框透明度

通过设置 window 的 alpha 属性可以改变。

信息提示

Toast 信息框

- 除了显示文字,toast 还可以显示图像(setView)

- Toast.show() 方法并不是让其显示,而是让这个 Toast 进入系统的 Toast 队列

通知 Notification

创建步骤

- 1 通过 getSystemService 方法获得一个 NotificationManager 对象

- 2 创建一个 Notification 对象

- 3 创建一个 PendingIntent 对象。

- 4 使用 Notification 类的 setLatestEventInfo 方法设置 Notification 的详细信息

- 5 使用 NotificationManager 类的 notify 方法显示 Notification 消息

Notification 的单击事件处理

使用PendingIntent.getActivity 方法获取一个 PendingIntent 对象,并将 PendingIntent 对象传入 setLatestEventInfo 方法的最后一个参数。

Tips:发送广播 PendingIntent.getBroadcast 开始服务:PendingIntent.getService()。

从状态栏清除 Notification

使用 NotificationManager.cancel 方法可以清除单一一个,参数是 ID。 cancelAll 清除全部,Ps:当前 Mainager 对象中的全部。

让 Notification 永久存在

设置 Notification 的 flags 属性为 Notification.FLAG_ONGOING_EVENT,能让其永久存在。

自定义 Notification 和其支持的组件

只需要设置 Notification.contentView 变量(需要一个 RemoteViews 对象)

支持的布局:FrameLayout LinearLayout RelativeLayout

支持的组件:AnalogClock Button Chronometer ImageButton ImageView ProgressBar TextView

菜单

Android 支持哪几种菜单

选项菜单 上下文菜单 子菜单

可显示图像的菜单

选项菜单可以显示,上下文和子菜单的菜单头可以显示。但菜单项不能显示图像

如何为 Activity 添加选项菜单

Activity.onCreateOptionsMenu 方法中,使用 Menu 对象添加菜单。

响应菜单项单击事件的方法

onMenuItemClick

onOptionsItemSelected

onMenuItemSelected

个人注解

因为目前在实际项目之中菜单已经用的越来越少,况且自定义 View 和其他自定义 View 样式差不多。

所以这里不再对菜单进行过多的说明,如果到时候需要使用,可以去查阅官方文档和API。

android 广播 关闭对话框,Android 对话框、信息提示和菜单相关推荐

  1. Android SnackBar:你值得拥有的信息提示控件

    概述: Snackbar提供了一个介于Toast和AlertDialog之间轻量级控件,它可以很方便的提供消息的提示和动作反馈. 有时我们想这样一种控件,我们想他可以想Toast一样显示完成便可以消失 ...

  2. android屏幕关闭,在Android上关闭屏幕

    对我来说,这些方法不起作用.所以我使用其他场景(不是微不足道)来关闭我的屏幕. Android有2个标志,负责清醒: 显示 - >屏幕TimeOut 应用程序 - >开发 - > 充 ...

  3. android 广播解绑,Android四大组件之BroadCast

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? Android四大组件之BroadCast 一.广播概述 Android应用可以从Android系统和其他Android ...

  4. android 广播唤醒应用,Android通过广播实现灭屏和唤醒

    1.要实现灭屏和唤醒,需要在Manifest文件添加如下权限: 2.以下是封装的一个工具类,实现屏幕唤醒和熄灭 package testWakeAndLock; import android.cont ...

  5. android代码关闭数据库,android – 我应该如何正确打开和关闭我的数据库

    我有一个应用程序,它将一些数据存储在SQLite数据库中.此外,我在我的应用程序中进行了大量查询和重新查询.我在其中有大约15个活动.并且所有人都使用数据库来查询数据. 但我正在做的是在每个活动中打开 ...

  6. android 如何关闭app,android 关闭app程序

    关闭Android程序大约有4种方式: 第一种: currentVersion = android.os.Build.VERSION.(currentVersion > android.os.B ...

  7. android广播 有序 无序,Android中的有序和无序广播浅析

    BroadcastReceiver所对应的广播分两类:无序广播和有序广播. 无序广播即为我们平时经常使用的广播,其主要是通过public abstract void sendBroadcast (In ...

  8. qt 关闭对话框 提醒_qt5信息提示框QMessageBox用法

    information QMessageBox::information(NULL, "Title", "Content", QMessageBox::Yes ...

  9. android广播intent原理,Android中BroadcastReceiver详解

    BroadcastReceiver是什么? Android app可以发送广播也可以接收系统或者其它app发送的广播,是发送/订阅的设计模式.这些广播被发送当重要的事件发生的时候.例如,安卓系统发送广 ...

最新文章

  1. node.js 多个异步过程判断执行是否完成
  2. Delphi 按Esc快捷键退出程序的简单方法
  3. iphone各机型参数对比_带你了解新款iPhone 12系列四款机型
  4. 7z替换exe文件内容不能替换文件_Windows小技巧 批处理文件实现目录下文件批量打包压缩...
  5. 非极大值抑制(Non-Maximum Suppression,NMS)(转)
  6. jQuery操作Form表单元素
  7. Unittest方法 -- 测试套件
  8. 3. Markdown 语法教程
  9. Java NIO学习与记录(七): Reactor单线程模型的实现
  10. 关于Java栈与堆的思考 (zz matrix )
  11. RSA加密算法中的数学原理
  12. MATLAB的数据类型
  13. Python beautiful soup解析html获得数据
  14. 1.1 OpenFlow 概述
  15. html5 声控游戏,用声音来放大招吧!10款独具创意的声控游戏
  16. TypeError: first argument must be an iterable of pandas objects, you passed an object of type “DataF
  17. 短视频APP软件开发源码提供
  18. 代码整洁之道核心记要(一)
  19. hp电脑 linux 出错,HP笔记本AMT报错修复
  20. 东南大学破格保研挂科_东南大学保研条件挂科

热门文章

  1. 网页HTML5制作flex布局骰子,CSS3的Flexbox骰子布局的实现及分析
  2. java 多个数字_java 输入多个数字
  3. mysql text 查询速度_数据库学习之让索引加快查询速度(四)
  4. JVM初学之堆的内存模型
  5. jena 开发之 mysql数据导入_在Jena框架下基于MySQL数据库实现本体的存取操作
  6. 在B站更新BV标识后,如何查看视频原AV号?
  7. PG中的几种数据类型转换方式
  8. PostgreSQL主备切换
  9. Python机器学习:KNN算法05f超参数
  10. 数据科学入门与实战:Seaborn002热力图等