`
quanminchaoren
  • 浏览: 926152 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Android Toast使用简介

阅读更多
Toast是Android中用来显示显示信息的一种机制,和Dialog不一样的是,Toast是没有焦点的,而且Toast显示的时间有限,过一定的时间就会自动消失。下面用一个实例来看看如何使用Toast。
首先建立一个ToastExample的项目,放置3个按钮,分别为Text Only,Icon Only,Text and Icon。布局及XML如下:


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:orientation="vertical"
   android:gravity="center_vertical"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   >
    <LinearLayout
        android:orientation="horizontal"
        android:gravity="center_horizontal"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        >
            <Button
                android:text="Text Only"
                android:id="@+id/Button01"
                android:layout_width="100px"
                android:layout_height="wrap_content"
                />
            <Button
                android:text="Icon Only"
                android:id="@+id/Button02"
                android:layout_width="100px"
                android:layout_height="wrap_content"
                />
            <Button
                android:text="Icon and Text"
                android:id="@+id/Button03"
                android:layout_width="120px"
                android:layout_height="wrap_content"
                />
    </LinearLayout>
</LinearLayout> 
然后在程序中为三个按钮分别创建点击事件,代码如下:

Button btn;
btn = (Button) findViewById(R.id.Button01);
btn.setOnClickListener(new Button.OnClickListener()
{
    public void onClick(View v)
    {
        Toast.makeText(getApplicationContext(), "Text toast test!", Toast.LENGTH_LONG).show();
    }
});
btn = (Button) findViewById(R.id.Button02);
btn.setOnClickListener(new Button.OnClickListener()
{
    public void onClick(View v)
    {
        Toast toast = new Toast(getApplicationContext());
        ImageView view = new ImageView(getApplicationContext());
        view.setImageResource(R.drawable.ic_dialog_alert);
        toast.setView(view);
        toast.show();
    }
});
btn = (Button) findViewById(R.id.Button03);
btn.setOnClickListener(new Button.OnClickListener()
{
    public void onClick(View v)
    {
        Toast toast = Toast.makeText(getApplicationContext(), "Text and Icon test!", Toast.LENGTH_LONG);
        View textView = toast.getView();
        LinearLayout lay = new LinearLayout(getApplicationContext());
        lay.setOrientation(LinearLayout.HORIZONTAL);
        ImageView view = new ImageView(getApplicationContext());
        view.setImageResource(R.drawable.ic_dialog_alert);
        lay.addView(view);
        lay.addView(textView);
        toast.setView(lay);
        toast.show();
    }
}); 
然后运行程序分别点击三个按钮可以看到三种不同情况下的Toast。

可以看到,最后一种图片加文字的显示显然是不符合我们的要求的,那么我们可以通过增加Toast的Layout来调整Toast上的布局方式。我们增加一个Toast的Layout描述xml文件,/res/layout/toast_layout.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
             android:id="@+id/toast_layout_root"
             android:orientation="horizontal"
             android:layout_width="fill_parent"
             android:layout_height="fill_parent"
             android:padding="10dp"
             android:background="#DAAA"
             >
    <ImageView android:id="@+id/image"
              android:layout_width="wrap_content"
              android:layout_height="fill_parent"
              android:layout_marginRight="10dp"
              />
    <TextView android:id="@+id/text"
             android:layout_width="wrap_content"
             android:layout_height="fill_parent"
             android:textColor="#FFF"
             />
</LinearLayout> 
然后我们修改Button3的OnClick事件:

btn = (Button) findViewById(R.id.Button03);
btn.setOnClickListener(new Button.OnClickListener()
{
    public void onClick(View v)
    {
        LayoutInflater inflater = getLayoutInflater();
        View layout = inflater.inflate(R.layout.toast_layout, (ViewGroup) findViewById(R.id.toast_layout_root));
        ImageView image = (ImageView) layout.findViewById(R.id.image);
        image.setImageResource(R.drawable.ic_dialog_alert);
        TextView text = (TextView) layout.findViewById(R.id.text);
        text.setText("Hello! This is a custom toast!");
        Toast toast = new Toast(getApplicationContext());
        toast.setDuration(Toast.LENGTH_LONG);
        toast.setView(layout);
        toast.show();
    }
}); 
再运行程序,显示如下:


另外,我们还可以使用setGravity()方法来定位Toast在屏幕上的位置,例如toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0)可以把Toast定位在左上角。

分享到:
评论

相关推荐

    Android Toast 自定义背景、图片 随心使用

    这里,我们使用了一个`LinearLayout`作为根视图,并设置了自定义的背景`@drawable/custom_toast_background`。同时,我们还添加了一个`ImageView`用于显示图片,以及一个`TextView`用于显示文本。 接下来,我们需要...

    android自定义Toast设定显示时间

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

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

    首先,我们来了解`Android Toast`的基本使用。创建一个Toast非常简单,通常通过`Toast.makeText()`方法实现,传入上下文(Context)、显示的文本(CharSequence)以及显示时间(Duration:短期Toast或者长期Toast)...

    Android-AndroidToast工具类

    `AndroidToast`的使用非常方便,但有时为了增强代码的可读性和可维护性,开发者会创建自定义的`ToastUtils`工具类来封装`Toast`的基本功能。以下是对`AndroidToast`以及`ToastUtils`工具类的详细讲解。 ### Android...

    Android Toast各种使用方法及DEMO

    以上就是`Android Toast`的基本使用方法,通过这些方式,开发者可以灵活地在应用中创建和定制`Toast`,以满足不同场景的需求。在实际开发中,结合DEMO进行实践,可以更好地理解和掌握`Toast`的用法。

    android Toast大全(五种情形)

    ### Android Toast 大全(五种情形) #### 一、概览 在Android开发中,`Toast`是一种轻量级的提示方式,主要用于快速显示简短的信息,如操作结果、临时提示等。它不会阻塞UI线程,也不需要用户进行任何交互即可...

    C# Winform 类似Android Toast消息功能

    【C# Winform 类似Android Toast消息功能】是一种在Windows桌面应用中实现类似Android系统Toast功能的技术。在Android中,Toast是一种短暂显示信息的方式,它不会阻断用户与界面的交互,而是在屏幕某一位置短暂展示...

    Android全局Toast工具类

    全局Toast工具类,作用:连续显示toast提示时取消上一个toast 通过ToastUtil.toast(Context(), "文本")调用

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

    现在,你可以像使用系统Toast一样调用自定义的CustomToast,同时拥有更多的自定义功能: ```java CustomToast.show(context, "这是一个自定义Toast", Toast.LENGTH_SHORT); ``` 通过这种方式,你可以根据需求自由...

    ReactNativeToast一个用于android和ios类似于androidtoast提示控件

    React Native Toast是一个跨平台的组件,它为Android和iOS提供了类似Android原生Toast的功能。这个组件使得开发者在使用React Native进行混合移动应用开发时,能够方便地实现快速、简洁的提示信息显示,无论是在...

    android Toast对象的使用 自定义Toast

    在Android开发中,`Toast`是一个非常常用的组件...通过以上步骤,你可以轻松地在Android应用中使用`Toast`来展示信息,无论是简单的文本提示还是复杂的自定义视图。在实际开发中,根据需求灵活运用,可以提高用户体验。

    android开发之自定义Toast

    一个简单的自定义Toast资源,您可以根据自己的需要更改我的代码即可实现您想要的效果(主要是更改xml文件的布局),这是androidstudio的项目,但是不妨碍在eclipse中使用,可以直接在eclipse中新建android项目,然后将...

    Android 5.0以上Toast不显示的解决方法

    最近在开发中我们经常会在适配5.0以后的机型遇到各种各样的问题,其中有一个不大不小的问题就是:Toast不显示问题,这篇文章就给大家总结了Android 5.0以上Toast不显示的原因与解决方法,有需要的朋友们可以参考借鉴...

    Android Toast实现弹出层源码解析.rar

    Android Toast使用解析附代码,实现类似WEB开发中的弹出层效果,当用户点击一个链接或操作按钮时,会弹出一个操作层(浮动层)或浮动菜单,进而执行下一步操作。本源码是使用Android中的Toast对象来模拟实现网页中的...

    android自定义时长Toast

    2. **创建自定义Toast类**:接下来,我们创建一个新的类,继承自`Toast`,并重写其`makeText()`方法,以便在其中使用自定义布局和时长。 ```java public class CustomToast extends Toast { public CustomToast...

    PhoneGap android的Toast插件

    然后,它会使用Android的`Toast.makeText`方法来创建并显示Toast。 `Toast.makeText`方法通常包括三个参数:上下文(Context)、要显示的文本(String)和持续时间(int)。持续时间可以是`Toast.LENGTH_SHORT`或`...

    Android-Android实现Toast自定义样式

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

    c# winform 类似android toast消息功能

    在C# WinForm开发中,有时我们希望实现类似Android中的Toast功能,以便向用户显示短暂的通知消息。Android的Toast提供了一种轻量级的提示方式,可以在不中断用户操作的情况下展示信息。C# WinForm虽然没有内置的...

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

    7. **易用性**:使用Muddz-StyleableToast非常简单,只需几行代码即可创建一个美观的`Toast`,大大降低了开发者的编码负担。 8. **兼容性**:作为一款成熟的库,Muddz-StyleableToast通常会考虑Android的不同版本和...

    Android中自定义Toast背景颜色及字体颜色,防止Toast多次创建的ToastUtil

    Android中自定义Toast背景颜色及字体颜色,防止Toast多次创建的ToastUtil,详细了解请移步:http://blog.csdn.net/zxc514257857/article/details/68962539

Global site tag (gtag.js) - Google Analytics