我有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
条消息
答案 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)
也许你不在UI线程中?试试这个:http://developer.android.com/reference/android/app/Activity.html#runOnUiThread%28java.lang.Runnable%29
答案 4 :(得分:7)
我确实喜欢这个
Toast.makeText(SalesActivityGroup.group.getParent(), "Amount can not be
grater than invoice", Toast.LENGTH_SHORT).show();
答案 5 :(得分:5)
刚刚碰到这个问题,想知道一个简单的Toast是如何出现的。经过几次试验,我很震惊地检查了应用程序和Voila的通知设置。
我将通知设置切换为开启状态。我搜索并发现了下面的链接,它说的是相同的:
答案 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)
只需重新启动模拟器并不能解决我的问题。
现在重新安装应用程序就可以了。
答案 13 :(得分:-1)
尝试:
Toast.makeText(v.getContext(), "Reason can not be blank", Toast.LENGTH_SHORT).show();
答案 14 :(得分:-1)
Complimer检查所有代码,如果出现严重错误,它甚至会忽略错误部分之前的行,因此您将看不到" Toast"。 简单地说,注释它们中发生错误的行(你可以在Logcat中找到错误行) 现在你可以看到" Toast"并且可以分析你的问题。