Android Toast 长期显示解决方案
Toast是Android中用来显示显示信息的一种机制,和Dialog不一样的是,
Toast是没有焦点的,而且Toast显示的时间有限, 过一定的时间就会自动消失。
下面用一个实例来看看如何使用Toast。
首先建立一个ToastExample的项目,放置3个按钮,分别为 Text Only,Icon Only,Text and Icon。
Text Only
Toast.makeText(getApplicationContext(), "Text toast test!", Toast.LENGTH_LONG).show();
Icon Only
Toast toast = new Toast(getApplicationContext());
ImageView view = new ImageView(getApplicationContext());
view.setImageResource(R.drawable.ic_dialog_alert);
toast.setView(view);
toast.show();
Text and Icon
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封装在里面,可以满足基本应用。
public class MyToast {
private static final String TAG = "MyToast";
public static final int LENGTH_MAX = -1; //show until hide() function invoked
boolean mCanceled = true;
Handler mHandler;
Context mContext;
Toast mToast;
public MyToast(Context context) {
this(context,new Handler());
}
public MyToast(Context context,Handler h) {
mContext = context;
mHandler = h;
mToast = Toast.makeText(mContext,"",Toast.LENGTH_SHORT);
mToast.setGravity(Gravity.BOTTOM, 0, 0);
}
public void show(int resId,int duration) {
mToast.setText(resId);
if(duration != LENGTH_MAX) {
mToast.setDuration(duration);
mToast.show();
} else if(mCanceled) {
mToast.setDuration(Toast.LENGTH_LONG);
mCanceled = false;
showUntilCancel();
}
}
public void show(String text,int duration) {
mToast.setText(text);
if(duration != LENGTH_MAX) {
mToast.setDuration(duration);
mToast.show();
} else {
if(mCanceled) {
mToast.setDuration(Toast.LENGTH_LONG);
mCanceled = false;
showUntilCancel();
}
}
}
public void hide() {
Log.d(TAG,"hide");
mToast.cancel();
mCanceled = true;
}
public boolean isShowing() {
return !mCanceled;
}
private void showUntilCancel() {
if(mCanceled)
return;
mToast.show();
mHandler.postDelayed(new Runnable() {
public void run() {
showUntilCancel();
}
},3000);
}
}
分享到:
相关推荐
Android 自定义 Toast 设定显示时间 Android 自定义 Toast 设定显示时间是指在 Android 应用程序中,自定义 Toast 的显示时间,而不是使用系统默认的 Toast.LENGTH_SHORT 或 Toast.LENGTH_LONG。本文将详细介绍如何...
最近在开发中我们经常会在适配5.0以后的机型遇到各种各样的问题,其中有一个不大不小的问题就是:Toast不显示问题,这篇文章就给大家总结了Android 5.0以上Toast不显示的原因与解决方法,有需要的朋友们可以参考借鉴...
本文将深入探讨这个问题,并提供一个解决方案——"Android-屏蔽系统通知Toast无法显示的解决方案v2.0.0"。 首先,理解Android系统的通知机制是至关重要的。Android的通知是由NotificationManager服务管理的,它允许...
创建一个Toast非常简单,通常通过`Toast.makeText()`方法实现,传入上下文(Context)、显示的文本(CharSequence)以及显示时间(Duration:短期Toast或者长期Toast)。例如: ```java Toast.makeText(context, ...
在Android开发中,`Toast`是一种轻量级的...通过以上方法,我们可以有效地解决`Toast`在Android应用中重复显示的问题,提高用户体验。在实际开发中,应根据具体场景选择合适的方法,遵循最佳实践,避免出现这类问题。
在Android开发中,`Toast`是一种轻量级的提示方式,用于向用户显示短暂的信息,如操作结果或者简单的提示。通常,`Toast`会显示一个简单的文本消息,但默认样式可能无法满足所有设计需求。本篇文章将深入探讨如何在...
Android中定义了一个Toast对象,用以弹出一个窗口来给予用户帮助和提示,和对话框不同的是,Toast并不是以独占方式显示的,它并不会抢夺用户的焦点,在弹出Toast的时候,依然可以对之前的界面进行操作,我们在“”...
/* 显示toast,自己定义显示长短。 * param1:activity 传入context * param2:word 我们需要显示的toast的内容 * param3:time length long类型,我们传入的时间长度(如500)*/
在Android应用开发中,Toast是一种常用的轻量级提示方式,用于短暂显示消息,告知用户一些信息或者操作结果。然而,系统默认的Toast虽然方便,但其样式和功能相对固定,不能满足所有开发者的需求。在某些情况下,...
在Android应用开发中,`AndroidToast`工具类是一种常见的组件,用于向用户显示短暂的通知信息。这些信息通常出现在屏幕上的某个位置,展示几秒钟后自动消失,不会干扰用户的正常操作。`AndroidToast`的使用非常方便...
小米mimu系统,会对toast进行拦截,在用户提交的toast 消息体拼接一个前缀,由于该种会导致插件工程出现资源错乱,获取appLabel异常,现我们通过hook 动态代理,对消息发送做一个劫持,修改消息信息,还原原来的消息
在Android开发中,`Toast`是一个非常常用的组件,它用于显示短暂的信息提示,通常不会干扰用户的操作。在标题“Toast的几行代码”中,我们可以理解这是一个关于如何简单使用`Toast`来创建提示效果的教程。描述“简单...
`Android Toast任意显示时间`这个主题就是针对这一限制,探讨如何让`Toast`根据我们的需求来显示指定时长。 在Android SDK中,`Toast`类提供了`makeText()`方法来创建一个`Toast`对象,可以设置显示的内容和类型。...
在Android开发中,`Toast`是一种轻量级的提示方式,主要用于快速显示简短的信息,如操作结果、临时提示等。它不会阻塞UI线程,也不需要用户进行任何交互即可自动消失。本文将详细介绍五种创建`Toast`的方法,帮助...
"Android Toast 全屏显示实现详解" Android Toast 是 Android 系统中一种常用的提示信息展示方式,但默认情况下 Toast 只能显示在屏幕的某个角落,无法实现全屏显示。今天我们将详细介绍如何实现 Android Toast 的...
在Android开发中,`Toast`是一个非常常用的组件,它用于向用户显示短暂的消息提示,而不会中断当前应用程序的运行。`Toast`的消息会浮现在屏幕上方或下方,并在指定时间后自动消失,非常适合用于告知用户一些简短的...
全局Toast工具类,作用:连续显示toast提示时取消上一个toast 通过ToastUtil.toast(Context(), "文本")调用
在Android开发中,Toast是一种轻量级的通知方式,它能够在屏幕中央或底部显示短暂的信息,然后自动消失。然而,原始的Toast有时无法满足开发者对于样式、持续时间或交互的需求,因此,自定义Toast就显得尤为重要。...
Toast是一种简易的消息提示框,它无法获取焦点,按设置的时间来显示完以后会自动消失,一般用于帮助或提示。 先给大家分享下我的解决思路: 不用计算Toast的时间之类的,就是定义一个全局的成员变量Toast, 这个Toast...