为什么toast消息不会显示在包含mobile的android 4.1操作系统中

时间:2012-08-28 12:46:58

标签: android toast android-4.2-jelly-bean

我无法在android 4.1 mobile中看到toast消息。直到昨天我才能看到吐司的消息。从今天起,我才看不到这条消息。请帮帮我。

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

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

自定义吐司:

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

5 个答案:

答案 0 :(得分:48)

在Android 4.1中没有向我显示Toast,因为在我的应用设置中已选中“显示通知”。我刚刚进入设置 - >管理应用程序 - > [我的应用程序]并切换到显示通知和Toasts开始出现。

答案 1 :(得分:8)

更改为此并再次检查。

if(first_name.length() == 0) 
{ 
    Toast.makeText(NameOfYourActivity.this, "Please fill Name", Toast.LENGTH_SHORT).show(); 
    Utilities.writeIntoLog("Please fill Name"); 
}

答案 2 :(得分:7)

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

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

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

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

我至少了解当应用程序处于后台时可以禁用Toasts,但如果它是前台Activity则不会被禁用。

答案 3 :(得分:2)

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

  1. 您的背景没有错误
  2. 您正尝试在后台线程而不是工作线程中显示Toast。
  3. 修改 在您的自定义Toast中,不要在布局inflater中设置父级,例如使用如下所示

    View layout = inflater.inflate(R.layout.toast_layout,null);
    

答案 4 :(得分:0)

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

public void showToastMessage(final String msg) {

    runOnUiThread(new Runnable() {
        @Override
        public void run() {
            Toast.makeText(BaseActivity.this, msg, Toast.LENGTH_LONG).show();
        }
    });
}