8

我在 android 4.1 手机中看不到 toast 消息。直到昨天,我才能够看到 toast 消息。从今天开始,只有我看不到该消息。请帮我。

Toast.makeText(getApplicationContext(), "hi", Toast.LENGTH_SHORT).show(); 

我也尝试过自定义吐司消息而不是吐司消息。但仍然无法正常工作。

自定义吐司:

LayoutInflater inflater=getLayoutInflater(); 
View layout = inflater.inflate(R.layout.toast_layout,(ViewGroup) findViewById(R.id.toast_layout_root)); 
TextView text = (TextView) layout.findViewById(R.id.text); 
text.setText("Please fill Name"); 
Toast toast = new Toast(getApplicationContext()); 
toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
toast.setDuration(Toast.LENGTH_LONG); 
toast.setView(layout); 
toast.show();
4

5 回答 5

49

在 Android 4.1 中,Toast 没有与我一起显示,因为在我的应用程序设置中选中了显示通知。我只是去设置->管理应用程序->[我的应用程序]并打开显示通知和 Toasts 开始出现。

于 2013-01-05T08:30:45.990 回答
8

更改为此并再次检查。

if(first_name.length() == 0) 
{ 
    Toast.makeText(NameOfYourActivity.this, "Please fill Name", Toast.LENGTH_SHORT).show(); 
    Utilities.writeIntoLog("Please fill Name"); 
}
于 2012-08-28T12:53:52.407 回答
7

只需在此处发布谷歌代码链接。

自 Jelly Bean 以来,用户可以通过“应用详细信息”设置禁用给定应用的通知。

一个非常糟糕且不需要的副作用是,一旦禁用通知,Toast 消息也会被禁用,即使用户正在运行应用程序!

您鼓励在您的设计指南中使用 Toast,但如果用户有可能删除它们,谁会想要使用它,特别是如果烤消息是显示给用户的重要反馈...

我知道至少可以在应用程序处于后台时禁用 Toast,但如果它是前台 Activity 则不会。

于 2012-12-24T08:30:15.423 回答
2

Toast 在所有 Android 版本中都运行良好。您的代码中可能存在几个问题,例如

  1. 你的上下文没有错
  2. 您试图在后台线程而不是工作线程中显示 toast。

编辑 在您的自定义吐司中,不要在布局充气器中设置父级,例如使用如下

View layout = inflater.inflate(R.layout.toast_layout,null);
于 2012-08-29T04:10:28.467 回答
0

我有同样的问题。当我在 UI 线程上调用代码时,问题为我解决了

public void showToastMessage(final String msg) {

    runOnUiThread(new Runnable() {
        @Override
        public void run() {
            Toast.makeText(BaseActivity.this, msg, Toast.LENGTH_LONG).show();
        }
    });
}
于 2017-09-04T09:11:28.360 回答