Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Toast消息未显示_Android - Fatal编程技术网

Android Toast消息未显示

Android Toast消息未显示,android,Android,我有按钮。当用户单击按钮时,有一些条件,该条件不满足,然后需要显示Toast,但不显示Toast消息 代码:已编辑 Button addMe = (Button)findViewById(R.id.addMe); addMe.setOnClickListener(new OnClickListener() { public void onClick(View v) { if(selectedReason.equals("--Selec

我有按钮。当用户单击按钮时,有一些条件,该条件不满足,然后需要显示Toast,但不显示Toast消息

代码:已编辑

 Button addMe = (Button)findViewById(R.id.addMe);
    addMe.setOnClickListener(new OnClickListener() {
           public void onClick(View v) {
               if(selectedReason.equals("--Select--")){
                   Log.i("TAG","-----");
                   Toast.makeText(getBaseContext(), "Reason can not be blank", Toast.LENGTH_SHORT).show();
               }else if(selectedType.equals("--Select--")){
                   Toast.makeText(getParent(), "Discount type can not be blank", Toast.LENGTH_SHORT).show();
               }else{
                   if(selectedType.equals("Value")){
                       if(spc_amount.getText().toString().equals("")){
                           Log.i("TAG","-----");
                           Toast.makeText(getBaseContext(), "Discount type can not be blank", Toast.LENGTH_SHORT).show();
                       }else{
                           if(Double.parseDouble(spc_amount.getText().toString()) > invoiceValue){
                               Toast.makeText(getBaseContext(), "Amonut can not be grater than invoice", Toast.LENGTH_SHORT).show();
                           }else{
                               Discount dis = new Discount();
                               dis.setCriteriaName(selectedReason);
                               dis.setDiscountValue(Double.parseDouble(spc_amount.getText().toString()));
                               spDisList.put(1,dis);
                               tl.removeAllViews();
                            loadTableLayout();
                           }

                       }
                   }
               }
           }
    });
我尝试了使用
getParent()
getApplicationContext()
特殊上下文活动的上下文。这
getBaseContext()
但不起作用

Toast
消息位于
选项卡活动组下

请尝试:

Toast.makeText(getBaseContext(), "Reason can not be blank", Toast.LENGTH_SHORT).show();

正是您在所有地方都忽略了.show(),这导致您的祝酒词都不稳定,但从未执行。

也许您不在UI线程中?试试这个:

我想你缺少
.show()
应该是

Toast.makeText(getBaseContext(), "Amount can not be grater than invoice",
                                                     Toast.LENGTH_SHORT).show();
尝试:


您可以使用活动的上下文

如果这不起作用,请放入
log.i()在你的每一种情况下,可能都是最后一种情况,而你没有得到祝酒辞。

我就是这样做的

Toast.makeText(SalesActivityGroup.group.getParent(), "Amount can not be 
                                grater than invoice", Toast.LENGTH_SHORT).show();

如果这不是您问题的解决方案,请原谅,但我曾经意外地取消了应用程序的“显示通知”设置。进入设备设置/应用程序/管理器并检查此设置可能是个好主意。

编译器检查所有代码,如果出现严重错误,它甚至会忽略错误部分之前的行,因此您将看不到“Toast”。 简单地说,注释其中发生错误的行(您可以在Logcat中找到错误行)
现在,您可以看到“Toast”并可以分析您的问题。

刚刚偶然发现了这个问题,并想知道为什么没有出现简单的Toast。经过几次试用,我突然想到要检查应用程序的通知设置,瞧

我打开了通知设置,它开始显示。我搜索了一下,发现了下面的链接,内容也是一样的:


可能有两种可能性:

1-您没有附加
.show()
在Toast.makeText(getActivity(),“Hi”,Toast.LENGTH\u SHORT)的最末尾

2-可能存在您未传递正确上下文的情况

为此,请尝试传递
getActivity().getApplicationContext()

就我而言,这解决了问题


祝你好运:)

只要重新启动你的设备!它解决了我的问题。

如果Toast没有显示,这意味着您没有调用
show()
方法,或者您没有在UI线程上

理想情况下,您应该创建一个助手方法来在UI线程上显示这样的Toast

 /** Execute Toast on UI thread **/
 private fun showToast(message: String) {

        Handler().post {
            // Code here will run in UI thread
            Toast.makeText(
                this, 
                message,
                Toast.LENGTH_LONG
            ).show()
        }
    }

有时,我们希望使用Toast消息打印的消息中可能存在错误或nullPointerException。如果发生此错误,则应用程序将忽略Toast消息。我也有同样的问题。我在日志中打印了消息,发现了错误,然后在Toast中更改了消息。它按照我的要求工作。试试看

有时Emulator挂起,因此重新启动Emulator可以解决问题。

只需重新启动您的Emulator就可以解决我的问题

  • 近距离仿真器
  • 工具->Avd管理器
  • 在设备列表中,单击“操作”列下的“下拉图标”
  • 现在冷启动


  • 现在重新安装应用程序,它会工作。

    谢谢@LalitPoptani我使用Toast.makeText(SalesActivityGroup.group.getParent(),“Amonut不能比发票更细”,Toast.LENGTH_SHORT)。show()@NagkeeranPiraba关于你的问题还有一件事,你应该提到你正在使用Tab。我不敢相信这也是我的错误!哈哈。非常感谢你的提醒!我从来没有想过。。。本以为此设置只会隐藏我服务的通知图标,但你是对的,它确实也隐藏了祝酒词哇,我对此极为怀疑,但至少在4.4.4上,禁用通知也会阻止祝酒词的显示。我也这么做了,浪费了30分钟的时间:(正如下面的一条评论所指出的,您还应该为应用程序启用“显示通知”,以便Toast为您工作。您为什么编辑代码以包含解决方案?应该保留它以包含错误,否则这个问题就没有意义。哦,天哪,为什么。因此被困了几个小时!这。太傻了。我有一个feeling我会多次犯这个错误。如果你使用jQuery,这有点类似于他们使用
    .show()
    .hide()
    DOM元素的方法,因此如果你记得土司在默认情况下总是隐藏的,这可能有助于记住执行
    .show()
    我有一个.show()我是从活动的onCreate方法调用的,我还有use
    this
    main活动。this
    getApplication()
    getApplicationContext()
    getBaseContext()
    一切都没有用。前两次测试中的祝酒词都出现了,但再也没有出现过。在这两次测试之间,代码没有变化。@RichardMcFriendlouwamuyiwa,但从第一手的经验中我知道,你总是漏掉一些小细节。没有调用UI线程的次数比我愿意承认的要多。天哪,是的,对于任何读过这篇answe的人来说r、 他的意思是“重新启动你的设备”。我几乎否决了你的答案……xPDude,你刚刚救了我一整天!我正在展示一个像
    toast.makeText(上下文、消息、toast.LENGTH\u SHORT).show()这样的祝酒词
    而且它并没有突然出现。让我质疑我的能力和生活意义……设备重启修复了它!哇!2020年开始工作。像素2设备构建QQ1A.191205.008)。太棒了!这对我的模拟AVD Pixel 3a很有效。我已经尝试了所有其他方法。谢谢!对我的MiA2很有效。我找到了这个。我正要开始修改一直有效的代码!我也在Android 9上成功了,这一个解决了它。谢谢!
    Toast.makeText(SalesActivityGroup.group.getParent(), "Amount can not be 
                                    grater than invoice", Toast.LENGTH_SHORT).show();
    
     /** Execute Toast on UI thread **/
     private fun showToast(message: String) {
    
            Handler().post {
                // Code here will run in UI thread
                Toast.makeText(
                    this, 
                    message,
                    Toast.LENGTH_LONG
                ).show()
            }
        }