安卓toast(Android Toast的基本使用[亲测有效])

发布时间:2025-12-10 19:16:39 浏览次数:2

Android Toast的基本使用[亲测有效]-安卓Toast案例代码

Android Toast(吐司)的基本使用[亲测有效]一、Toast简介当视图显示给用户,在应用程序中显示为浮动。和Dialog不一样的是,它永远不会获得焦点,无法被点击。用户将可能是在中间键入别的东西。Toast类的思想就是尽可能不引人注意,同时还向用户显示信息,希望他们看到。而且Toast显示的时间有限,Toast会根据用户设置的显示时间后自动消

一、Toast简介

当视图显示给用户,在应用程序中显示为浮动。和Dialog不一样的是,它永远不会获得焦点,无法被点击。用户将可能是在中间键入别的东西。Toast类的思想就是尽可能不引人注意,同时还向用户显示信息,希望他们看到。而且Toast显示的时间有限,Toast会根据用户设置的显示时间后自动消失。
二、Toast的使用

2.1、Toast.makeText(MainActivity.this, “提示的内容”, Toast.LENGTH_LONG).show();

第一个是上下文对象!第二个是显示的内容!第三个是显示的时间,只有LONG和SHORT两种
会生效,即时你定义了其他的值,最后调用的还是这两个!要自己造轮子重写时间

参数名含义
LENGTH_SHORT0toast显示较短的时间后消失(4000ms)
LENGTH_LONG1toast显示较长的时间后消失(7000ms)

2.2、改变Toast的位置

void setGravity(int gravity, int xOffset, int yOffset)

三、Toast Daemon

package com.gatsby.toast;import android.content.Context;import android.graphics.Color;import android.os.Bundle;import android.view.Gravity;import android.view.View;import android.widget.Button;import android.widget.TextView;import android.widget.Toast;import androidx.appcompat.app.AppCompatActivity;public class MainActivity extends AppCompatActivity implements View.OnClickListener {    Context mContext;    Button btn1, btn2, btn3, btn4;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        mContext = MainActivity.this;        initView();    }    public void initView() {        btn1 = (Button) findViewById(R.id.btn1);        btn2 = (Button) findViewById(R.id.btn2);        btn3 = (Button) findViewById(R.id.btn3);        btn1.setOnClickListener(this);        btn2.setOnClickListener(this);        btn3.setOnClickListener(this);    }    @Override    public void onClick(View v) {        switch (v.getId()) {            case R.id.btn1:                Toast.makeText(MainActivity.this, "Button1 Toast ---> 1", Toast.LENGTH_LONG).show();                break;            case R.id.btn2:                Toast toast = Toast.makeText(mContext, "Button2 Toast ---> 2", Toast.LENGTH_SHORT);                toast.setGravity(Gravity.TOP, 0, 0);                toast.show();                break;            case R.id.btn3:                crushToast("Button3 Toast ---> 3", Toast.LENGTH_LONG);                break;        }    }    public void crushToast(String str, int showTime) {        Toast toast = Toast.makeText(mContext, str, showTime);        toast.setGravity(Gravity.CENTER_HORIZONTAL | Gravity.BOTTOM, 0, 0);  //设置显示位置        TextView v = (TextView) toast.getView().findViewById(android.R.id.message);        v.setTextColor(Color.YELLOW);     //设置字体颜色        toast.show();    }}

希望我今天分享的这篇文章可以帮到您。

三. Android中的UI是线程不安全的,因此要更新UI必须在主线程中进行。

07-31 10:31:39.226 E/JavaBinder(  520): *** Uncaught remote exception!  (Exceptions are not yet supported across processes.)07-31 10:31:39.226 E/JavaBinder(  520): java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()07-31 10:31:39.226 E/JavaBinder(  520):         at android.os.Handler.<init>(Handler.java:200)07-31 10:31:39.226 E/JavaBinder(  520):         at android.os.Handler.<init>(Handler.java:114)07-31 10:31:39.226 E/JavaBinder(  520):         at android.widget.Toast$TN$2.<init>(Toast.java:336)07-31 10:31:39.226 E/JavaBinder(  520):         at android.widget.Toast$TN.<init>(Toast.java:336)07-31 10:31:39.226 E/JavaBinder(  520):         at android.widget.Toast.<init>(Toast.java:103)07-31 10:31:39.226 E/JavaBinder(  520):         at android.widget.Toast.makeText(Toast.java:256)07-31 10:31:39.226 E/JavaBinder(  520):         at com.android.server.XHService.XHBrightnessAndeUsb(XHService.java:768)07-31 10:31:39.226 E/JavaBinder(  520):         at android.app.IXHManager$Stub.onTransact(IXHManager.java:361)07-31 10:31:39.226 E/JavaBinder(  520):         at android.os.Binder.execTransact(Binder.java:565)

解决方法Handler(Looper.getMainLooper())

    public void toastTest(String str) {        new Thread(new Runnable() {            @Override            public void run() {                Handler handler = new Handler(Looper.getMainLooper());                handler.post(new Runnable() {                    @Override                    public void run() {                        Toast.makeText(mContext, str, Toast.LENGTH_LONG).show();                    }                });            }        }).start();    }

  

  

需要做网站?需要网络推广?欢迎咨询客户经理 13272073477