Android Toast消息不显示

6

我知道还有其他问题涉及到这个问题,但是我的问题出人意料地不同(至少我认为是这样的)。

我猜我的代码没错,但我不知道为什么Toast消息不显示。首先,在我的Fragment中我看不到Toast消息。然后我决定将它放在我的Activity中,惊人的是它在这里也不显示。

下面是我的Activity代码,它是从FragmentActivity扩展而来。

@Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);

        Log.d(TAG, "***************************");
        Log.d(TAG, "*** Application started ***");
        Log.d(TAG, "***************************");

        // assign layout to activity
        setContentView(R.layout.activity_main);

        mContext = MainActivity.this;
        Toast.makeText(mContext, "Hello World", Toast.LENGTH_SHORT).show();

.
.
.
} 

应用程序没有错误,但是只有f.toast消息不显示!我甚至用getApplicationContext()替换了mContext,结果还是一样,toast没有显示。

任何建议都将不胜感激。谢谢

===============

更新:当我打开Toast类时,有一些红线。请看下面的图片

enter image description here


我假设你在logcat中看到了那3个日志?尝试清理你的项目。 - Xaver Kapeller
那些错误并不重要。由于这两个类很可能具有包可见性,所以这是正常的。您不必费心查看框架类... - Xaver Kapeller
1
如果你正在模拟器上尝试,请在真实设备上尝试,否则没有问题。 - Osama Mohammed Shaikh
@OsamaMohammedShaikh,您的建议对我非常有价值。我在Android 4.3上进行了测试,一切正常。但是我的设备是4.1.2版本,为什么无法显示呢?我在其他应用程序中可以显示toast消息。哎呀... - Hesam
我不知道,但有时旧软件会变得有 bug。 - Osama Mohammed Shaikh
显示剩余3条评论
4个回答

24

也许您在设置中意外地禁用了应用程序的通知?这也会导致没有弹框提示。


1
确切地说,我不知道我是什么时候做的。无论如何,在我围着自己旋转了3-4个小时后,你终于告诉我原因。谢谢... - Hesam
现在我知道为什么我的用户无法从我的应用程序中看到任何提示了。我以为那是我的错。 - Kimi Chiu
我禁用了所有应用程序的通知,但是当我卸载并重新安装该应用程序后,它现在可以正常工作了...? ¿ - Terranology

1

有时候可能会有一些东西遮挡了你的提示信息...所以当出现这种情况时,我会使用这个方法:

    Toast toast = Toast.makeText(TaskEdit.this, "Task Saved", Toast.LENGTH_SHORT);
    toast.setGravity(Gravity.CENTER_HORIZONTAL,0,0);
    toast.show();

你可以使用各种可用的setGravity选项更改提示位置。编程愉快。

1
我也遇到了这个问题。我的问题是,特定的模拟器没有显示任何toast消息,尽管其他模拟器和真实设备都可以。在关闭模拟器并删除文件夹<YourUserName>\.android\avd\<EmulatorName>.avd\snapshots后,我解决了这个问题。

0

尝试将mContext替换为"this",至少这是我一直在使用的方式...而不是输入额外的代码行,你可以简化,因为你已经在MainActivity中了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接