对于以下吐司,为什么以下代码
Toast message = Toast.makeText(getContext(), R.string.message_saved + savedFilePath, Toast.LENGTH_SHORT);
显示一些奇怪的数字,例如2131099680 / mnt / sdcard / 路径而不是所需的“你的图像保存在:/ mnt / sdcard / 路径?
怎么可以修改?感谢!!!
答案 0 :(得分:6)
通过使用 在打印出 或者,您可以通过添加 直接在 我的上述答案使用了Context#getString()
从字符串资源ID中获取String
,只需将在之前放在之前
String text = getContext().getString(R.string.message_saved) + savedFilePath;
Toast message = Toast.makeText(getContext(), text, Toast.LENGTH_SHORT);
R.string.message_saved
的int表示形式之前,它实际上是R中的整数,只是整数。text
getContext().getString(R.string.message_saved) + savedFilePath;
Toast
的第二个参数中,但我使用单独的字符串清晰度。getContext()
,因为OP正在扩展View
。 View
has this method,因此这是在此方案中获取Context
的有效方法。需要注意的重要一点是,真正的问题不是选择如何获取Context
(如果你在一个活动内而不是一个View,
那么Activity
越过makeText()
实例到String
就足够了),而是如何从字符串资源ID 中获取{{1}}。
答案 1 :(得分:1)
试试这个
Toast.makeText(getApplicationContext(), getApplicationContext().getResources.getString(R.string.imgval), Toast.LENGTH_SHORT).toShow();