Android Toast消息未显示
我有按钮。当用户单击按钮时,有一些条件,该条件不满足,然后需要显示Toast,但不显示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
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方法调用的,我还有usethis
,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()
}
}