Android Toast消息未显示

时间:2011-10-18 06:27:50

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

                       }
                   }
               }
           }
    });

我尝试了getParent()getApplicationContext()SpecialDiscountActivity.this& getBaseContext()但没有工作......

Toast

下的Tab Activity Group条消息

15 个答案:

答案 0 :(得分:95)

尝试:

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

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

答案 1 :(得分:58)

我认为你遗失了.show(); 它应该是......

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

答案 2 :(得分:49)

如果这不是您问题的解决方案,请原谅我,但我不小心取消选中应用程序的“显示通知”设置一次。您可以在设备设置/应用程序/管理器中查看此设置。

答案 3 :(得分:7)

答案 4 :(得分:7)

我确实喜欢这个

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

答案 5 :(得分:5)

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

我将通知设置切换为开启状态。我搜索并发现了下面的链接,它说的是相同的:

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

答案 6 :(得分:2)

可能有两种可能性:

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

2-可能是您没有通过正确的上下文

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

在我看来,这可以解决问题。

祝你好运:)

答案 7 :(得分:2)

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

答案 8 :(得分:1)

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

答案 9 :(得分:1)

如果未显示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()
        }
    }

答案 10 :(得分:0)

您可以使用活动的上下文

Toast.makeText(ActivityName.this,"Reason can not be blank", Toast.LENGTH_SHORT).show()

如果这不起作用,请在您的每个条件中加log.i();,这可能会转到最后一个,但您没有获得Toast。

答案 11 :(得分:0)

有时,我们要使用Toast消息打印的消息中可能存在错误或nullPointerException。如果发生此错误,则应用将仅忽略Toast消息。我遇到过同样的问题。我将消息打印在日志中并发现错误,然后在Toast中更改了消息。它按我的意愿工作。试试吧!

答案 12 :(得分:0)

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

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

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

答案 13 :(得分:-1)

尝试:

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

答案 14 :(得分:-1)

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