安卓018 Dialog & Toast & Notification & Menu

一、  通过 Toast  显示消息提示框

Toast 类用于在屏幕中显示一个可以消息提示框,该消息提示框没有任何控制按钮,并

且不会获得焦点,经过一定时间后自动消失,通常用于显示一些快速提示信息,应用范围非

常广泛

语法:

1, Context context = getApplicationContext();

CharSequence text ="Hello toast!";

int duration =Toast.LENGTH_SHORT;

Toast toast =Toast.makeText(context, text, duration);

toast.show();

Toast toast=new Toast(this);

Toast toast=Toast.makeText(this, "要显示的内容", Toast.LENGTH_SHORT);

Toast.show();

注意:调用 Toast  类的 show() 方法显示消息提示框,需要注意的是,一这要调用该方法,

否则设置的消息提示框将不会显示。

常用方法:

方法  描述

setDuration(int duration)  用 于 设 置 消 息 提 示 持 续 的 时 间 , 通 常 使 用

Toast.LENGTH_LONG 或 Toast.LENGTH_SHORT 参数值

setGravity(int gravity,int xOffset,int

yOffset)

用于设置消息提示框的位置,参数 gravity 用于指定

对齐方式,xOffset 和 yOffset 用于指定具体的偏移值

setMargin(float

horizontalMargin,float

verticalMargin)

用于设置消息提示的页边距

setText(CharSequence s)  用于设置要显示的文本内容

setView(View view)  用于设置将要在消息提示框中显示的视图

效果图 :

二、  使用 AlertDialog  实现对话框

AlertDialog 类的功能非常强大,它不仅可以生成带按钮的提示对话框,还可以生成带列

表的列表对话框,使用 AlertDialog 可以生成对话框概括起来有四种

1, 带确定,中立和取消三个按钮的提示对话框,其中的按钮个数不是固定的,可以根据需

要添加。

2, 带列表的列表对话框

3, 带多个单选列表项和 N 个按钮的列表对话框

4, 带多个多选择列表项和 N 个按钮的列表对话框

常用方法:

方法  描述

setTitle(CharSequence title)  用于为对话框设置标题

setIcon(Drawable icon)  用于为对话框设置图标

setIcon(int resId)  用于为对话框设置图标

setMessage(CharSequence

message)

用于为提示对话框设置要显示的内容

setButton()

用于为提示对话框添加按钮,可以是取消按钮、中立按

钮 和 确 定 按 钮 。 需 要 通 过 为 其 指 定 int 类 型 的

whichButton 参 数 实 现 , 其 参 数 值 可 以 是

DialogInterface.BUTTON_POSITIVE ( 确 定 按 钮 )、

BUTTON_NEGATIVE(取消按钮)或者 BUTTON_NEUTRAL

(中立按钮)

通常情况下,使用 AlertDialog 类只能生成带 N 个按钮的提示对话框,要生成另外三种列表

的对话框,需要使用 AlertDialog.Builder 类,AlertDialog.Builder 类提供常用方法如下:

方法  描述

setTitle(CharSequence title)  用于为对话框设置标题

setIcon(Drawable icon)  用于为对话框设置图标

setIcon(int resId)  用于为对话框设置图标

setMessage(CharSequence

message)

用于为提示对话框设置要显示的内容

setNegativeButton()  用于为对话框添加取消按钮

setPositiveButton()  用于为对话框添加确定按钮

setNeutralButton()  用于为对话框添加中立按钮

setItems()  用于为对话框添加列表项

setSingleChoiceItems()  用于为对话框添加单选列表项

setMultiChoiceItems()  用于为对话框添加多选列表项

setView()  给弹出框设置自定义布局

案例截图

三、  使用 Notification  在状态栏上显示通知

定义:

一种可以显示即时信息的控件,该控件显示在标题栏中,拉开后会看到通知的完整样式

Notification 和 NotificationManager。来处理状态栏的推送信息,使用它俩发送显示通

知分四个步骤

调用 getSystemService()方法获取系统的 NotificationManager 服务

创建一个 Notification 对象,并为其设置种属性

为 Notification 对象设置事件信息

通过 NotificationManager 类的 notify()发送 Notification 通知

通过 NotificationManager 的 manager.cancel(NOTIFYID_1);可以清除通知

3.1  普通通知

(1)使用普通通知的必须选项:

①添加标题,使用 setContentTitle()方法

②设置图标,使用 setSmallIcon()方法

③添加内容,使用 setContentText()方法

(2)可选项

①setDefaults(系统默认铃声 | 系统默认震动)

②setTicker(设置标题栏显示的内容,一般为 contentText)

(3)创建通知的步骤

①定义 NotificationCompat.Builder 对象

②设置必须选项和可选项

(4)发布通知

NotificationManager.notify(id,notification) .

id→每个通知都有一个唯一的 id

notification→通知对象,而非 NotificationCompat.Builder 对象,通过调用

builder.build()方法得到

(5)点击事件

①使用 PendingIntent,具体方法如下

getActivity(Context context, int requestCode, Intent intent, int flags)

context:获得上下文对象

requestCode:获得另外一个 Activity 的返回码

intent:PendingIntent 需要触发的事件,比如跳转 Activity

flags:通知标志位

②使用 setContentIntent(PendingIntent)将封装好的 PendingIntent 对

象放入该方法中

Intent intent=new Intent(MainActivity.this,ContentActivity.class);

PendingIntent

pendingIntent=PendingIntent.getActivity(MainActivity.this, 0, intent, 0);

builder.setContentIntent(pendingIntent);

3.2  大视图通知

注意:4.1 以下的版本不支持大视图

①先创建一个简单通知

NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this);

mBuilder.setSmallIcon(R.drawable.alerm);

mBuilder.setContentTitle("Event tracker");

mBuilder.setContentText("Events received");

②使用 NotificationCompat.InboxStyle 对象设置大视图通知的样式,代码如下:

NotificationCompat.InboxStyle inboxStyle =new

NotificationCompat.InboxStyle();

// 设置大视图标题

inboxStyle.SetBigContentTitle("Event tracker details:");

// 为大视图添加事件内容

for(int i=0; i < 5; i++){

inboxStyle.addLine("details:"+i);

}

③使用 setStyle 方法将 InboxStyle 对象放进去

mBuilder.setStyle(inBoxStyle);

1.NotificationCompat.InboxStyle 收件箱风格:显示多行文字

2.NotificationCompat.BigPictureStyle 大图片风格:详情区域包含一个 256dp 高度的位

3.NotificationCompat.BigTextStyle 大文字风格:显示一个大的文字块

3.3  进度条通知

当下载的时候,在通知栏显示一个进度条的通知

①创建一个普通通知

②开一个线程,在该线程中使用 setProgress(进度值的最大值,当前进度值,false),在 notify

方法即时通知进度条,代码如下:

mBuilder.setProgress(100, incr,false);

mNotifyManager.notify(0, mBuilder.build());

3.4  自定义通知

①创建一个普通通知

②创建一个自定义布局文件,后缀为 xml

③创建一个 RemoteViews 对象,将 xml 布局加载到该对象中,代码如下:

RemoteViews content = new RemoteViews(getPackageName(), R.layout.item);

④使用 setContent(content)方法,将 RemoteViews 对象加载到普通通知对象中

Notification.Builder builder = new Notification.Builder(this);

builder.setSmallIcon(R.drawable.ic_launcher);

builder.setContentTitle("自定义");

RemoteViews views = new RemoteViews(getPackageName(), R.layout.activity_content);

builder.setContent(views);

manager.notify(1, builder.getNotification());

四、 Menu  菜单的使用

定义:当用户点击手机 menu 键会弹出菜单,菜单在 2.3 系统中最多显示 6 项,在 4.0 系统中

会根据屏幕的高度决定菜单的项数。

2.3  中

4.0  中

OptionsMenu:

(1) 代码中:

①重写 public boolean onCreateOptionsMenu(Menu menu) {....}方法

②创建菜单项:menu.add(0, 1, 5, "一");

第一个参数为 GroupID,Group 即将菜单项分组

第二个参数为 ItemID,指的是菜单项的 id

第三个参数为 order,指定菜单项的位置顺序

第四个参数为 title,指的是菜单项所显示的文字

注意:返回值为 true,表示当用户按下 menu 键时会调用系统提供的 menu,为 false 为调用

自定义的菜单。

③监听器

重写 onOptionsItemSelected 方法

(2)XML  中:

①xml 文件位置:res/menu 文件夹下

②写法

<?xml version="1.0" encoding="utf-8"?>

<menu xmlns:android="http://schemas.android.com/apk/res/android">

<item android:id="@+id/new_game"

android:icon="@drawable/ic_new_game"

android:title="@string/new_game"

android:showAsAction="ifRoom"/>

<item android:id="@+id/help"

android:icon="@drawable/ic_help"

android:title="@string/help"/>

</menu>

a.创建菜单 xml,必须以 menu 为根标签

b.item 标签为菜单项

c.android:id 表示 item 的 id

d.android:icon 表示菜单的图标,4.0 系统仅在 ActionBar 上显示图标

e.android:title 表示菜单的文字

f.showAsAction 表示是否将 item 显示在 ActionBar 上, 仅 仅 4.0  系统可以显示

※子菜单

<?xml version="1.0" encoding="utf-8"?>

<menuxmlns:android="http://schemas.android.com/apk/res/android">

<item android:id="@+id/file"

android:title="@string/file">

<!-- "file" 的子菜单 -->

<menu>

<item android:id="@+id/create_new"

android:title="@string/create_new"/>

<item android:id="@+id/open"

android:title="@string/open"/>

</menu>

</item>

</menu>

注意:item 必须是双标签,将 menu 子菜单放到 item 标签中

③在 Activity 中引入 xml

@Override

publicboolean onCreateOptionsMenu(Menu menu){

MenuInflater inflater = getMenuInflater() ;

inflater.inflate(R.menu.xxx, menu);

returntrue;

}

Context Menu

1.重写方法:

public void onCreateContextMenu(ContextMenu menu, View v,

ContextMenuInfo menuInfo) {

menu.clear();//清除系统的 ContextMenu,主要针对 2.3.x 系统

if (v == findViewById(R.id.editText1)) {

menu.setHeaderIcon(R.drawable.ic_launcher);//为上下文菜单添加图标

menu.setHeaderTitle("性别");//为上下文菜单添加标题

menu.add(0, 0, 0, "男");//设置菜单项,同 OptionsMenu

menu.add(0, 1, 0, "女");

}

}

2.点击事件:

public boolean onContextItemSelected(MenuItem item) {

switch(item.getItemId()){

case 0:

et.setText(item.getTitle());

break;

case 1:

et.setText(item.getTitle());

break;

}

return true;

}

3.注册:

this.registerForContextMenu(需要显示 ContextMenu 的控件);

时间: 2024-10-25 06:55:04

安卓018 Dialog & Toast & Notification & Menu的相关文章

android 中dialog,toast,optionmenu,contextmenu的使用

这几个界面是activity附带主界面之外,开发中常常会用到的界面元素, dialog,toast的界面都是可以自定义的. optionmenu和contextmenu 的界面也可自定义,但是没有dialog那么灵活,它只能自定义一些title,item之类的. 1.dialog自定义界面 AlertDialog dialog=new AlertDialog.Builder(MainActivity.this).create(); dialog.setView(view); 2.toast自定义

通知(Toast+Notification)

Toast简要说明:(前面已经用过好多次了) Toast是一种非持久的(在屏幕上面留一会儿就消失了),提供给用户简洁提示信息的视图. 它不阻断用户的操作,一般用于显示一些不重要的信息.(比方说设置音量的那个提示) Toast类可以用于创建和显示toast信息,toast一般翻译为吐司. 常用方法:(有set方法,也有get方法) Toast.makeText(context, text, duration);  //返回Toast对象 toast.setDuration(duration); 

Dialog&amp;&amp;Toast&amp;&amp;Menu

package com.example.second; import java.util.zip.Inflater; import android.support.v7.app.ActionBarActivity;import android.app.AlertDialog;import android.content.DialogInterface;import android.os.Bundle;import android.view.Gravity;import android.view.

安卓学习之通知(Notification)

安卓中创建通知需要借助NotificationManager来对通知进行管理.可以调用Context的getsSystemService()方法来获得. getsSystemService()方法接收一个参数,这个参数是字符串,用于指定哪一个服务.Context.NOTIFICATION_SERVICE 就是指定通知服务. 这个方法返回一个Object对象,所欲需要进行强制转换. NotificationManager manager = (NotificationManager) getSys

新建Activity、Toast、Menu

1.新建Activity 新建Activity->创建布局->在AndroidManifest文件中注册 (1)每个活动都要重写Activity的OnCreate方法 (2)res-New-Directory(创建layout目录)--->Layout resource file(创建布局资源文件) --->在活动中的OnCreate方法中加载布局 (3)所有的活动均要在AndroidManifest.xml中注册才能生效 2.Toast的使用 3.Menu的使用 (1)在res下

去除安卓自定义Dialog黑色背景,设置无边框,透明

我们在自定义Dialog的时候,往往会希望除去安卓系统定义背景和标题,以便于更好的显示我们自己想要的效果. 其实我们只需要注意几个地方就行了. 1.在Style文件的中定义Dialog的主题 <style name="MyDialog"> <item name="android:windowFrame">@null</item> <item name="android:windowBackground"&

在活动中使用Toast和Menu

在创建的活动中使用Toast 在onCreate方法中添加以下代码 点击按钮,效果如图 在活动中使用Menu 首先在res目录下新建一个Menu文件夹,接着在中国文件夹下创建一个名为main的菜单文件 然后在main.xml中添加以下代码 接着在FirstActivity中重写onCreateOptionsMenu()方法 然后在FirstActivity中重写onOptionsItemSelect()方法 重新运行程序,标题栏右侧有一个三点的符号,这就是菜单按钮 原文地址:https://ww

安卓中通知(Notification)的基本使用方法

1. 通知的使用场合 当某个应用程序希望向用户发出一些提示信息,而该应用程序又不在前台运行时,就可以借助通知来实现.发出一条通知后,手机最上方的状态栏中会显示一个通知的图标,下拉状态栏后可以看到通知的详细内容. 2. 通知的创建步骤 (1)获取NotificationManager实例,可以通过调用Conten的getSystenService()方法得到,getSystemService()方法接收一个字符串参数用于确定获取系统的哪个服务, 这里我们传入Context.NOTIFICATION

安卓开发之Toast.

Toast 是一个 View 视图,快速的为用户显示少量的信息. Toast 在应用程序上浮动显示信息给用户,它永远不会获得焦点,不影响用户的输入等操作,主要用于 一些帮助 / 提示.Toast 最常见的创建方式是使用静态方法 Toast.makeText 1. 默认的显示方式 1 // 第一个参数:当前的上下文环境.可用getApplicationContext()或this  2 // 第二个参数:要显示的字符串.也可是R.string中字符串ID  3 // 第三个参数:显示的时间长短.T