为了下面的 toast ,为什么下面的代码
Toast message = Toast.makeText(getContext(), R.string.message_saved + savedFilePath, Toast.LENGTH_SHORT);
显示一些奇怪的数字,例如 2131099680/mnt/sdcard/路径 而不是所需的“您的图像保存在:/mnt/sdcard/路径?
如何修改?谢谢!!!
最佳答案
在使用 Context#getString()
制作 Toast 之前, 将两个字符串简单地放在一起得到String
来自字符串资源 ID:
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
。 (如果你在一个 Activity 而不是 View,
中,将 Activity
实例传递给 makeText()
就足够了),而是如何获取 String
来自字符串资源 ID。
关于android toast打印奇怪的数字而不是单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14846295/