与Toast一起遇到一个奇怪的问题 - 我的应用程序中有一些在他们执行某些操作时通知用户,特别是有一个显示问题。它在模拟器上很好,在我的合作开发者的Android手机上很好,但在我的手机上,第二行文字被切断了。吐司显示为单行框,您可以看到第二行文本的顶部被切断。其他人遇到过这个问题?这只是一个普通的错误吗?我一直无法找到谷歌的问题!
msg = getString(R.string.notification_cancel_add);
Toast.makeText(AddEditActivity.this, msg, Toast.LENGTH_SHORT).show();
和R.string.notification_cancel_add = <string name="notification_saved_message">Your Notification has been saved.</string>
查看android本地化期货,here。也许你必须为你的手机细节(显示器等)编写额外的代码。就像你说的,它适用于其他设备
当你将String
硬编码到你的Toast
时,它是否也切断了文本?
这很奇怪。但我通过传递应用程序上下文解决了它。
msg = getString(R.string.notification_cancel_add);
Toast.makeText("pass aplication class context", msg, Toast.LENGTH_SHORT).show();
它将工作兄弟。
您必须使用应用程序上下文,getContext或MyClass.this在Activity中,使用getApplicationContext()
正如开发人员文档中所述:
首先,使用makeText()方法之一实例化Toast对象。此方法有三个参数:应用程序上下文,文本消息和Toast的持续时间。
资料来源:https://developer.android.com/guide/topics/ui/notifiers/toasts