最近在做一个android项目,测试人员通过不对点击按钮,呈现出Toast,当用户退回到上一个页面时,Toast的提示信息
还是没有消失。
关于这个问题,起初我认为可以通过设置Toast的显示的时间来解决该问题,Toast.LENGTH_LONG表示的为常时间显示,
而Toast.LENGTH_SHORT设置的时间为短时间显示,但是情况还是没解决。
以前为传统的Toast.makeText(this, "aa", Toast.LENGTH_SHORT);方式显示,后来修改了Toast的现实方式为如下
private void shwoToast(Context context, int resouce, int duration)
{
Toast toast = new Toast(this);
toast.setDuration(duration);
toast.setText(context.getString(resouce));
toast.show();
}
结果不但问题没解决,程序却出现了如下错误
Caused by: java.lang.RuntimeException: This Toast was not created with Toast.makeText()
at android.widget.Toast.setText(Toast.java:275)
at cn.and.ToastActivity.onCreate(ToastActivity.java:20)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
通过查询相关的源码,具体源码如下:
public void setText(CharSequence s) {
if (mNextView == null) {
throw new RuntimeException("This Toast was not created with Toast.makeText()");
}
TextView tv = (TextView) mNextView.findViewById(com.android.internal.R.id.message);
if (tv == null) {
throw new RuntimeException("This Toast was not created with Toast.makeText()");
}
tv.setText(s);
}
如果采用上述我方式,没有设置TextView,则程序就会出现以上的错误。解决的办法是使用Toast.makeText方法创建
Toast即可。
最后通过查询相关资料,终于找到了解决办法,具体如下:
protected void showToast(Context context, String string, int length)
{
//声明Toast
Toast showToast = Toast.makeText(this, "toast text", Toast.LENGTH_SHORT);
showToast.setText(string);
showToast.setDuration(length);
showToast.show();
}
一定要申明Toast,在去设置Toast的相关属性值,这样才能解决多次点击Toast,返回到上一页面Toast提示信息不消失
的问题
分享到:
相关推荐
Android Toast 自定义背景、图片 随心使用
android Toast大全(五种情形)建立属于你自己的Toast
Android Toast 工具类
Android Toast各种使用方法及DEMO
c# winform 类似android toast消息功能, c# winform 类似android toast消息功能,不能选0分,所以选了最小的分,望见谅.. 转载:...
Android Toast使用解析附代码,实现类似WEB开发中的弹出层效果,当用户点击一个链接或操作按钮时,会弹出一个操作层(浮动层)或浮动菜单,进而执行下一步操作。本源码是使用Android中的Toast对象来模拟实现网页中的...
Android Toast 大全 (五种形式) 建立属于自己的 Toast
React Native Toast 一个用于android和ios类似于android toast提示控件,android使用原生toast, ios使用UIView Toast
android Toast对象的使用 自定义Toast
一个简单的带图村的Android Toast实例,轻触按钮,即可显示出Toast提示框信息,跟随以下代码你将实现这种既简洁又漂亮实用的Toast: ImageView iv = new ImageView(Sample_6_9.this);//创建ImageView iv....
androidToast大全(五种情形)[归类].pdf
Toast各种类型与颜色的详解,可以适合大多数UI爱好者的使用
主要为大家详细介绍了android自定义Toast设定显示时间,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
Android Toast工具类ToastUtils
Android Toast,即便关闭了通知权限也会正常显示
自定义Android Toast Demo
当点击某个控件会弹出Toast时,如果直接使用Toast.makeText()的方式...解决这个问题很简单,Toast.makeText()会不断的实例Toast这个对象,我们只要在Toast不为空的情况下不再去实例就行了。这里是一个简单的ToastDemo。
全局Toast工具类,作用:连续显示toast提示时取消上一个toast 通过ToastUtil.toast(Context(), "文本")调用
Toastie,toastie是一个可定制的android toast库。.zip