`

Android - Toast

阅读更多
1.概述
Toast是一种简洁提示视图,它浮现于应用程序之上,并不获得焦点,所以不会影响输入。

2.常量
int  LENGTH_LONG
持续显示视图或文本提示较长的时间。该事件长度可以定制。

int  LENGTH_SHORT
持续显示视图或文本提示较短的时间。可定制,该值为默认值

参见 setDuration(int)

3.构造函数

public Toast (Context context)
构造一个空的Toast对象。在调用show()之前,必须先调用setView()方法。只有使用setView()的时候才使用new Toast()构造toast对象,否则必须用makeText()方法来构建对象。并且这种方式获取的Toast对象不能使用setText更改文本信息。

Context使用的上下文,通常是你的application或者activity对象。

4.公共方法

public int cancel ()
如果视图已经显示则将其关闭,没有显示则不再显示。一般不需要调用该方法。正常情况下,视图会在超过设置的持续时长后自动消失。

public int getDuration ()
返回存续期间
参阅: setDuration(int)

public int getGravity ()
获取提示信息在屏幕上显示的位置。
参阅:Gravity setGravity()

public float getHorizontalMargin ()
返回横向栏外的空白。

public float getVerticalMargin ()
返回纵向栏外空白。

public View getView ()
返回 View 对象。
参阅:setView(View)

public int getXOffset ()
返回相对于参照位置的横向偏移像素量。

        Toast msg = Toast.makeText(Main.this, "Message", Toast.LENGTH_LONG);
        msg.setGravity(Gravity.CENTER, msg.getXOffset() / 2, msg.getYOffset() / 2);
        msg.show();


public int getYOffset ()
返回相对于参照位置的纵向偏移像素量。

public static Toast makeText (Context context, int resId, int duration)
生成一个从资源中取得的包含文本视图的标准 Toast 对象。
参数
context 使用的上下文。通常是你的 Application 或 Activity 对象。
resId 要使用的字符串资源ID,可以是已格式化文本。
duration 该信息的存续期间。值为 LENGTH_SHORT 或 LENGTH_LON

     异常
      当资源未找到时抛异常Resources.NotFoundException

public static Toast makeText (Context context, CharSequence text, int duration)
生成一个包含文本视图的标准 Toast 对象。
参数
context 使用的上下文。通常是你的 Application 或 Activity 对象。
text 要显示的文本,可以是已格式化文本。
duration 该信息的存续期间。值为 LENGTH_SHORT 或 LENGTH_LONG


public void setDuration (int duration)
设置存续期间。
请参阅
LENGTH_SHORT
LENGTH_LONG

public void setGravity (int gravity, int xOffset, int yOffset)
设置提示信息在屏幕上的显示位置。
请参阅
Gravity
getGravity()

public void setMargin (float horizontalMargin, float verticalMargin)
设置视图的栏外空白。
参数
horizontalMargin         容器的边缘与提示信息的横向空白(与容器宽度的比)。
verticalMargin             容器的边缘与提示信息的纵向空白(与容器高度的比)。

public void setText (int resId)
更新之前通过 makeText() 方法生成的 Toast 对象的文本内容。
参数
resId      为 Toast 指定的新的字符串资源ID。

public void setText (CharSequence s)
更新之前通过 makeText() 方法生成的 Toast 对象的文本内容。
参数
s   为 Toast 指定的新的文本。

public void setView (View view)
设置要显示的 View 。
(译者注:注意这个方法可以显示自定义的toast视图,可以包含图像,文字等等。是比较常用的方法。)
请参阅
getView()

public void show ()
按照指定的存续期间显示提示信息。


以上为ToastAPI中文说明,转载于http://www.cnblogs.com/over140/archive/2010/11/12/1875403.html
也可以直接到android查看官方版





Activity类
package com.example.activitys;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

/**
 * Toast两种显示方式
 * 
 * 使用View显示时,需要注意LayoutInflater的使用,它的主要功能是将Layout中的xml文件转换为View,它是专门供Layout使用的inflater。
 * 虽然Layout也是View的子类,但是在Android中如果想将xml文件中的Layout转换为View放入Java代码中操作,只能通过Inflater,而不能通过findViewById()。
 * 
 * @author Administrator
 */
public class ToastActivity extends Activity 
{

	/**
	 * 直接显示
	 */
	private OnClickListener btnToastClickHandler = new OnClickListener()
		{

			@Override
			public void onClick(View v) 
			{
				// TODO Auto-generated method stub
				showToast("测试信息1");
			}
			
		};
	
	/**
	 * 使用View显示
	 */
	private OnClickListener btnToastViewClickHandler = new OnClickListener()
	{

		@Override
		public void onClick(View v) 
		{
			// TODO Auto-generated method stub
			LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
			
			//XML转换为view
			View view = (View)inflater.inflate(R.layout.toastview, null);
			
			showToastView("测试信息2",view);
		}
		
	};
	
	@Override
	protected void onCreate(Bundle savedInstanceState) 
	{
		super.onCreate(savedInstanceState);
		
		this.setContentView(R.layout.toast);
		
		//获取组件对象并监听Click事件
		Button btn_toast = (Button)this.findViewById(R.id.btn_toast);
		btn_toast.setOnClickListener(btnToastClickHandler);
		
		Button btn_toast_view = (Button)this.findViewById(R.id.btn_toast_ivew);
		btn_toast_view.setOnClickListener(btnToastViewClickHandler);
		
	}
	
	
	/**
	 * Toast提示
	 * @param str
	 */
	public void showToast(String v)
	{
		Toast toast = Toast.makeText(this, v, Toast.LENGTH_SHORT);
		
		//设置toast显示的位置
		toast.setGravity(Gravity.CENTER, 0, 180);
		//显示toast
		toast.show();
	}
	
	/**
	 * Toast使用View提示
	 * @param v
	 * @param view
	 */
	public void showToastView(String v,View view)
	{
		Toast toast = new Toast(this);
		toast.setDuration(Toast.LENGTH_SHORT);
		toast.setGravity(Gravity.CENTER, 0, 0);
		toast.setView(view);
		TextView text = (TextView)view.findViewById(R.id.texttoast);
		text.setText(v); // 此处将v改成"显示Toast",不知为何最终结果只显示一个"显"字。其余文字均无问题。
		toast.show();
	}

}


toastview.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <!-- android:contentDescription="@string/app_name" 避免编辑器的警告提示 -->
    <ImageView
        android:id="@+id/imagetoast" 
        android:contentDescription="@string/app_name"
        android:src="@drawable/ic_launcher" 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

    <TextView
        android:id="@+id/texttoast"
        android:text="@string/btn_toast_view"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:width="100dp"/>
    
</LinearLayout>



toast.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <Button
        android:id="@+id/btn_toast"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" 
        android:text="@string/btn_toast"/>
    
    
    <Button
        android:id="@+id/btn_toast_ivew"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" 
        android:text="@string/btn_toast_view"/>

</LinearLayout>
分享到:
评论

相关推荐

    Android-toast的基本封装包括单例化成功和失败的提示吐司

    在Android应用开发中,`Toast`是一个非常常用的组件,它用于显示短暂的提示信息,不会阻碍用户继续操作。本篇文章将深入探讨如何对`Toast`进行基本封装,特别是实现单例化以及针对成功和失败场景的定制化提示。 ...

    Android-Toast通知polyfill

    这个名为"toast-compat-master"的压缩包文件很可能包含了一个开源项目,该项目的目标是实现一个兼容性更好的Toast库,以便开发者在各种Android设备和API级别上都能稳定地使用Toast功能。这个库可能包含了以下关键...

    课堂资源代码(Android-Toast 控件使用)

    在Android开发中,Toast控件是一个非常常用且实用的组件,它用于在屏幕上显示短暂的提示信息,不干扰用户操作,通常用来展示一些简单的状态信息或者提示。本资源包主要涵盖了Android Toast的使用方法和常见应用场景...

    nativescript-android-toast:适用于Nativescript Android设备的Toast插件

    tns plugin add nativescript-android-toast API(方法) MakeToast ( text : String , duration : "long" or "short" ) ; API(属性) 属性 类型 要求 描述 文本 串 需要 您想烤的文本 持续时间 串 可选的 持续...

    Android---UI篇

    •Android---UI篇---Toast(提示) • •Android---UI篇---Button(按钮) • •Android---UI篇---TextView(文本框) • •Android---UI篇---EditText(编辑框) • •Android---UI篇---DatePicker,TimePicker(日期...

    react-native-mix-toast:基于React Native的Toast组件,完全实现Android轻提示和IOS提醒效果,可自定义toast视图和动画

    Android和iOS平台通用的自定义Toast UI组件 USAGE INSTALL npm install react-native-mix-toast IMPORT import Toast, { Duration, Position } from 'react-native-mix-toast'; EXAMPLE Toast.show('This is Toast',...

    Android-Android实现Toast自定义样式

    在Android应用开发中,`Toast`是常用的轻量级提示组件,用于向用户展示短暂的信息。默认情况下,`Toast`的样式和位置都是系统固定的,但开发者可以根据需求自定义其样式和显示位置,以增强用户体验。本文将详细介绍...

    Android-AndroidToast工具类

    在Android应用开发中,`AndroidToast`工具类是一种常见的组件,用于向用户显示短暂的通知信息。这些信息通常出现在屏幕上的某个位置,展示几秒钟后自动消失,不会干扰用户的正常操作。`AndroidToast`的使用非常方便...

    Android-AndroidToast即便关闭了通知权限也会正常显示

    在Android应用开发中,`Android Toast`是一种轻量级的提示机制,用于向用户显示简短的信息,通常在用户操作后出现并自动消失。标题提到的“Android Toast即便关闭了通知权限也会正常显示”是一个关键点,这涉及到...

    react-native-easy-toast:一个React本机模块,可像Android一样显示Toast,适用于iOS和Android

    一个响应本机模块,可以像Android一样显示吐司,它可以在iOS和Android上运行。 内容 安装 1. npm i react-native-easy-toast --save 或yarn add react-native-easy-toast 2. import Toast, {DURATION} from 'react-...

    Android-自定义Toast解决系统Toast存在的问题

    在Android应用开发中,Toast是一种常用的轻量级提示方式,用于短暂显示消息,告知用户一些信息或者操作结果。然而,系统默认的Toast虽然方便,但其样式和功能相对固定,不能满足所有开发者的需求。在某些情况下,...

    Android-自定义toast提示可设置做了封装

    在Android应用开发中,系统默认的Toast提示虽然简单易用,但往往无法满足开发者对于个性化提示的需求。为了提供更丰富的提示效果和更好的用户体验,开发者常常会选择自定义Toast。本资源"Android-自定义toast提示可...

    Toast追踪器-Toast弹出通知来源查看

    Toast追踪器-Toast弹出通知来源查看

    react-native-root-toast:React原生吐司之类的组件,纯javascript解决方案

    同时支持Android和iOS。 Toast有很多自定义选项。 您可以通过调用api或在render内部使用Component来显示/隐藏Toast。 安装 npm install react-native-root-toast react-native-root-toast&gt; = 2.1.0仅支持react-...

    android studio上使用zxing-android-embedded实现二维码生成和扫描

    在Android开发中,ZXing(Zebra Crossing)是一个流行的条形码和二维码处理库,而zxing-android-embedded是ZXing库的一个简化版本,专为Android应用设计,方便集成到项目中实现二维码的生成和扫描功能。下面我们将...

    MaterialDesign-Toast:带有Material Design的自定义android Toast

    MD-Toast是一个简单而轻巧的开源Android库,它提出了带有Material Design渲染的Toasts( popup )。 总览 信息 成功 警告 错误 演示版 您可以在查看演示 入门 在您的应用程序模块(大多数情况下为app )的build....

    CocosCreator-Toast.rar

    在这个"CocosCreator-Toast.rar"压缩包中,包含的是一个适用于Cocos Creator的自定义Toast组件,这个组件模仿了Android平台上的Toast功能,用于在游戏界面中显示短暂的信息提示。 1. **Toast控件介绍**: Toast...

    android自定义Toast设定显示时间

    Android 自定义 Toast 设定显示时间是指在 Android 应用程序中,自定义 Toast 的显示时间,而不是使用系统默认的 Toast.LENGTH_SHORT 或 Toast.LENGTH_LONG。本文将详细介绍如何使用 WindowManager 实现自定义 Toast...

    Android-对标准AndroidToast进行美化的一个库

    标准的Android `Toast`虽然功能基础,但有时可能无法满足开发者对于界面美观度和个性化的需求。针对这种情况,出现了一种专门用于美化Android `Toast`的库,名为"Muddz-StyleableToast"。这个库为开发者提供了丰富的...

    Android-花式toast自定义toast单调的风格

    在Android应用开发中,系统默认的Toast提示框虽然简单易用,但其样式相对单一,无法满足开发者对个性化展示的需求。"花式Toast"或"自定义Toast"就是解决这一问题的方法,它允许我们根据应用设计和用户体验需求,创建...

Global site tag (gtag.js) - Google Analytics