`
qiushyfm
  • 浏览: 97486 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

Toast使用注意--解决错误:The application ** has stopped unexpectedly.Please try again

阅读更多

运行应用的时候出现了The application ** has stopped unexpectedly.Please  try again 的错误,如下图:

 

通过debug发现异常信息为:

 

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)

 

分析andriod源码发现:

 

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);  
}

如果不指定view,则mNextView的值为null。就会抛出异常。另外使用第一种方式时,就算你为Toast设置好了View也不能这样调用:toast.setText(s);

会抛出This Toast was not created with Toast.makeText()异常。解决的办法是定义一个TextView,然后为TextView赋值,再加到XXLayout中,

使用setView(XXLayout)把XXLayout设置成Toast的View。

 

弹出提示的代码修改如下:

 

	/**
	 * 显示Toast
	 * @param toastTxt 提示文本内容
	 */
	private void showToast(String toastTxt) {
		Toast t = new Toast(this);
		t.setDuration(Toast.LENGTH_SHORT);
		LinearLayout layout = new LinearLayout(this);
		TextView textView = new TextView(this);
		textView.setText(toastTxt);
//		textView.setTextSize(16);
		layout.addView(textView);
		t.setView(layout);
		t.show();
	}
分享到:
评论
1 楼 helwens 2012-05-25  
好文章!真想转载

相关推荐

    【国开搜题】国家开放大学 一网一平台 Android核心开发技术03 期末考试押题试卷.docx

    使用WebView时,需要添加哪个权限,否则会出现“Web page not available”错误?** - **选项:** - A. android.permission.INTERNET - B. android.permission.BLUETOOTH - C. android.permission.SEND_SMS - D....

    Android-XML一般属性.docx编程资料

    - 生成提示消息可以通过`Toast.makeText()`方法创建`Toast`实例,设置显示时间,然后调用`show()`方法。 - **`PopupWindow`**: - 创建对话框风格的窗口通常涉及创建`PopupWindow`实例,并调用`showAsDropDown()`...

    小升初英语复习归纳.doc

    不可数名词如 **bread**、**toast**、**pasta**、**noodles**、**chips**、**chicken**、**fish**、**pork**、**beef**、**beefsteak**、**porridge**、**soup**、**salad**、**rice**、**water**、**juice**、**tea...

    Android开发入门书籍

    **3.2 使用操作栏(Chapter 27: Using the Action Bar)** - **知识点:** - ActionBar简介 - 设置操作栏 - 动作按钮与上下文菜单 **3.3 片段(Chapter 28: Fragments)** - **知识点:** - Fragment概述 - ...

    U7T3导学案仁爱英语八下.doc

    4. **Make a Toast**: “为干杯(祝酒)”在英文中的表达是 *make a toast*。例如:*Let’s make a toast to our friendship.*(让我们为我们的友谊干杯。) 5. **Practice Makes Perfect**: “孰能生巧”的英文...

    Android in Action

    **8.1 介绍Toast** - **Toast概念:** 解释了Toast的用途。 - **Toast示例:** 如何使用Toast显示简短的信息提示。 **8.2 介绍通知** - **通知栏:** 通知如何出现在通知栏。 - **通知创建:** 如何创建自定义的...

    我的android学习记录

    #### 十二、AsyncTask的使用注意事项 **知识点解析:** - **线程安全:** 使用`AsyncTask`时需要注意线程安全问题,确保在执行后台任务时不会影响UI线程。 - **生命周期:** 应当注意`AsyncTask`与宿主活动(Activity...

    《android培训》来源于jollen的bolg

    - **#13: Toast** - Toast是用于显示短时间提示消息的一种轻量级组件。这里可能会介绍如何使用Toast来向用户展示信息。 ### 6. Android 的用户交互与自定义组件 - **#14: Dialog** - Dialog是一种常见的对话框...

    安卓学习路线

    ### 安卓学习路线 #### 一、基础知识与开发环境搭建 **1.... - **Eclipse + ADT + SDK:** Eclipse 是早期 Android ...通过系统地学习这些内容,不仅能够帮助开发者构建高质量的应用程序,还能提高解决实际问题的能力。

    英语高考一轮复习Unitcultureshock北师大必修PPT课件.pptx

    12. **toast** - n. 烤面包;祝酒,干杯:除了指烤面包外,还可以在庆祝活动中向某人举杯祝酒。 13. **waiter** - n. (餐厅)服务员:男性服务员,负责提供餐饮服务。 14. **waitress** - n. (餐厅)女服务员:女性...

    烹饪中常用的英语单词.doc

    - **Toast**: 用火或烤箱烘烤面包片。 - **Blanch**: 快速将食物放入沸水中烫一下,然后立即取出,如烫菠菜。 - **Toss**: 翻动食物使其均匀受热,如炒菜时翻炒。 - **Whip**: 用搅拌器搅拌液体,如打发奶油或...

    《Android移动应用基础教程》-习题答案.docx编程资料

    1. **Toast使用方法** - 直接调用`Toast.makeText(this, text, duration).show();` - 创建Toast对象后调用`setText()`和`show()`。 2. **布局功能概述** - **RelativeLayout**:根据其他控件位置或容器边界来...

    【国开搜题】国家开放大学 一网一平台 Android核心开发技术18 期末考试押题试卷.docx

    错误在于使用了字符串资源(`R.string.bookName`)而不是视图资源(`R.id.bookName`)。 - **知识点扩展:** - `findViewById(int id)` 方法用于根据资源ID查找视图组件。 - 当组件类型不是`View`时(如`TextView`)...

    Beginning.Android.4

    - **Toast 控件**:介绍 Toast 控件的使用方法。 - **AlertDialog 类**:讲解 AlertDialog 类的使用技巧。 **第十八章:处理 Activity 生命周期事件** - **Activity 生命周期**:详细讲解 Activity 的生命周期状态...

    JQuery信息提示框插件 jquery.toast.js 的使用

    总结,`jQuery.toast.js` 提供了一个强大且易于使用的提示框解决方案,无论是在开发过程中调试还是在向用户传达信息,都能发挥重要作用。通过深入理解其使用方法和配置选项,你可以轻松地在网页上实现丰富多样的提示...

    高考英语3500单词第50讲(单词速记与拓展).pdf

    - **词根词缀**: **-toler-**(忍受、忍耐)+ **-ate**(动词词尾)。 - **派生词**: **toleration**(名词,意为“宽容、忍受、默认、耐受性”)。 #### 23. **tomato** - **释义**: 名词,意为“西红柿”。 - **...

    自己整理的Toast(吐司)工具类.txt

    3. **显示带有自定义时长的Toast** ```java ToastUtil.show(context, "Hello, World!", Toast.LENGTH_LONG); ``` 4. **取消当前Toast** ```java ToastUtil.cancel(); ``` #### 五、总结 通过上述对`...

    Vux 前端文档

    - **Toast 短暂提示**:短暂显示的提示信息。 - **Actionsheet 动作面板**:用于展示一系列操作选项。 - **Dialog 对话框**:提供对话框功能。 - **Spinner 旋转加载器**:加载动画组件。 #### 六、图片处理组件 -...

    出国英语实用口语会话实例.docx

    ### Unit 10: The Room Hasn’t Been Cleaned Up Yet - **情景**: 房间尚未打扫。 - **常用表达**: - "The room hasn’t been cleaned up yet." - "When will the cleaning service come?" - "Can I request ...

Global site tag (gtag.js) - Google Analytics