`

Android中Toast的用法简介

阅读更多

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?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>

然后在程序中为三个按钮分别创建点击事件,代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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。
android-toast-usage-02
可以看到,最后一种图片加文字的显示显然是不符合我们的要求的,那么我们可以通过增加Toast的Layout来调整Toast上的布局方式。我们增加一个Toast的Layout描述xml文件,/res/layout/toast_layout.xml:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<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事件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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();
    }
});

再运行程序,显示如下:
android-toast-usage-03

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

分享到:
评论

相关推荐

    android自定义Toast设定显示时间

    在 makeText 方法中,我们创建了一个 LinearLayout,添加了一个 TextView,并设置了其背景、文本颜色和文本对齐方式。然后,我们将 LinearLayout 添加到 WindowManager 中,并设置了其显示时间。 三、使用自定义 ...

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

    在Android中,我们可以通过`Toast.makeText()`方法来创建一个`Toast`实例,并设置显示的文本: ```java Toast.makeText(context, "Hello, World!", Toast.LENGTH_SHORT).show(); ``` 现在,让我们转向自定义`Toast...

    Android Toast各种使用方法及DEMO

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

    android service toast 01

    理解它们的使用方法和注意事项,对于构建高效、稳定的应用至关重要。通过“android service toast 01”这个项目,开发者可以深入学习Android后台服务的使用,以及如何在非主线程中正确地更新用户界面。

    android默认Toast,各种自定义Toast

    默认的Toast使用非常简单,只需要调用`Toast.makeText()`方法即可。例如: ```java Toast.makeText(context, "这是一个默认的Toast", Toast.LENGTH_SHORT).show(); ``` 这里的`context`是上下文对象,可以是...

    PhoneGap android的Toast插件

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

    Android-Android实现Toast自定义样式

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

    类似于Android的Toast

    总的来说,`Toast`是一个轻量级的提示工具,而“类似于Android的Toast”可能是在其他平台或框架中实现的类似功能,具有相似的使用方式和扩展性,如支持图片显示。通过使用这样的组件或库,开发者可以更加灵活地设计...

    Android学习笔记之Button,Toast,menu的简单用法

    在Android应用中,Menu主要用于在屏幕顶部或者底部显示一系列可选操作,通常在Activity的onCreateOptionsMenu()方法中创建: ```java @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater...

    android的Toast提示框优化

    可以创建一个自定义`Animatable`对象,并在`show()`方法中启动动画。也可以利用属性动画库`android.animation`来实现更复杂的动画效果。 5. **多行显示** 默认的`Toast`只能显示一行文本,如果需要显示多行信息,...

    Android中Toast和Notification的应用.

    在Android应用开发中,`Toast`和`Notification`是两种重要的用户反馈机制,它们用于向用户展示临时或持久的信息。让我们深入探讨这两种机制的工作原理、使用场景和实现方法。 首先,`Toast`是一种轻量级的提示方式...

    Android——Toast的例子们

    在本文中,我们将深入探讨`Toast`的使用方法、原理以及一些实际例子。 `Toast`的基本用法非常简单,我们可以通过`Toast.makeText()`方法创建一个`Toast`实例,并传入上下文(Context)、显示文本以及持续时间...

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

    实际上用户本意只是想关闭Notification,但是Toast的show方法中有调用INotificationManager这个类,而这个类在用户关闭消息通知权限的同时被禁用了,所以我们的吐司无法显示。 Toast.show() 效果图 自定义Toast...

    Android 优化加载中的Toast,实现真正的夹在过渡动画 源码

    在Android开发中,为了给用户提供即时的反馈信息,我们经常使用`Toast`类来显示短暂的通知。然而,Android原生的`Toast`功能有限,样式单一且无法自定义动画效果。针对这一问题,开发者们创建了各种扩展库,以增强`...

    Android_Toast用法.docx

    在Android应用开发中,`Toast`有多种用法,可以满足不同的展示需求。下面将详细解释标题和描述中提到的五个`Toast`使用情形: 1. **默认效果**: 这是最基础的`Toast`使用方式,只需要调用`Toast.makeText()`方法...

    qt for android 实现Toast弹窗,本地通知栏显示,弹出在后台的界面以及加入资源系统白名单

    在Qt for Android中,我们可以通过调用`QAndroidJniObject`类来使用Java的Toast API。以下是一个简单的示例: ```cpp #include #include void showToast(const QString &message) { QAndroidJniEnvironment env...

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

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

    android 解决Toast重复显示问题

    在Android开发中,`Toast`是一种轻量级的...通过以上方法,我们可以有效地解决`Toast`在Android应用中重复显示的问题,提高用户体验。在实际开发中,应根据具体场景选择合适的方法,遵循最佳实践,避免出现这类问题。

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

    在Android SDK中,Toast类提供了show()方法来显示一个消息。通常,我们通过以下方式创建和显示一个系统Toast: ```java Toast.makeText(context, "这是一个系统Toast", Toast.LENGTH_SHORT).show(); ``` 然而,...

    Android中自定义Toast.pdf

    在Android中,可以使用`setGravity()`方法来改变Toast的显示位置。例如,以下代码将Toast的位置设置为屏幕中央: ```java Toast toast_modify_location = Toast.makeText(getBaseContext(), "改变位置的Toast", ...

Global site tag (gtag.js) - Google Analytics