Android Toast消息未显示

Pir*_*aba 54 android

我有Button.当用户点击按钮时,有一些条件,条件不满足则需要显示Toast但不显示Toast Message ...

代码:已编辑

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

                       }
                   }
               }
           }
    });
Run Code Online (Sandbox Code Playgroud)

我曾尝试与语境getParent(),getApplicationContext(),SpecialDiscountActivity.thisgetBaseContext(),但不工作....

这个Toast消息来自于Tab Activity Group

小智 101

尝试:

Toast.makeText(getBaseContext(), "Reason can not be blank", Toast.LENGTH_SHORT).show();
Run Code Online (Sandbox Code Playgroud)

你在所有地方都省略了.show(),它会导致所有你的toast实例化,但永远不会执行.

  • 哦天啊为什么.因此而被困了几个小时! (8认同)
  • 这个。是的。愚蠢。 (3认同)

Lal*_*ani 60

我想你错过了.show(); 应该......

Toast.makeText(getBaseContext(), "Amount can not be grater than invoice",
                                                     Toast.LENGTH_SHORT).show();
Run Code Online (Sandbox Code Playgroud)


小智 60

如果这不是您的问题的解决方案,请原谅我,但我不小心取消选中应用程序的"显示通知"设置一次.这可能是一个想法进入您的设备设置/应用程序/管理器并检查此设置.

  • 我原本不会想到这个......想到这个设置只隐藏了我服务的通知图标,但你是对的,它确实隐藏了吐司 (4认同)
  • 哇,我对此非常怀疑,但至少在4.4.4上,禁用通知也会停止显示. (3认同)

Ali*_*eni 38

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

  • OMG 是的,对于阅读此答案的任何人,他的意思是“重新启动您的设备”。我差点对你的回答投了反对票... xP (2认同)
  • 伙计,你刚刚救了我一整天!我正在展示像“Toast.makeText(context, message, Toast.LENGTH_SHORT).show();”这样的吐司,但它并不是突然出现的。让我质疑自己的能力和生命的意义...设备重启修复了它! (2认同)

Pir*_*aba 8

我确实喜欢这个

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


Atu*_*lic 8

刚刚碰到这个问题,并想知道如何不出现一个简单的Toast。经过几次试用后,我很惊讶地检查了该应用程序和Voila的通知设置。

我打开了通知设置,它开始显示。我搜索并找到了以下链接,该链接讨论了相同的内容:

https://code.google.com/p/android/issues/detail?id=35013


Hit*_*ahu 6

如果 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()
        }
    }
Run Code Online (Sandbox Code Playgroud)


Ebi*_*Joy 6

只需重新启动模拟器并不能解决我的问题。

  1. 关闭模拟器
  2. 工具 -> Avd 管理器
  3. 在设备列表中单击“操作”列下的“下拉图标”。
  4. 现在冷启动

现在重新安装应用程序就可以了。


Ali*_*waz 5

可能有两种可能性:

1-您尚未.show();在末尾追加Toast.makeText(getActivity(), "Hi", Toast.LENGTH_SHORT)

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

为此尝试通过 getActivity().getApplicationContext();

在我看来,这解决了这个问题。

祝好运 :)


Min*_*rid 5

有时模拟器会挂起,因此重新启动模拟器可以解决问题。