对于下面的吐司,为什么下面的代码
Toast message = Toast.makeText(getContext(), R.string.message_saved + savedFilePath, Toast.LENGTH_SHORT);
显示一些奇怪的数字,例如 2131099680 /mnt/sdcard/路径而不是所需的“您的图像保存在:/mnt/sdcard/路径?
这怎么可能被修改?谢谢!!!
只需在制作 Toast之前将两个字符串放在一起,使用从字符串资源 idContext#getString()
获取:String
String text = getContext().getString(R.string.message_saved) + savedFilePath;
Toast message = Toast.makeText(getContext(), text, Toast.LENGTH_SHORT);
在您打印出 int 表示之前,R.string.message_saved
它实际上是 R 中的内容,只是整数。
text
或者,您可以通过放置跳过使用字符串
getContext().getString(R.string.message_saved) + savedFilePath;
直接在的第二个参数中,但为了清楚起见Toast
,我使用了单独的字符串。
getContext()
由于 OP 正在扩展,因此使用了我的上述答案View
。View
有这个方法,所以它是Context
在这种情况下获得的有效方法。需要注意的重要一点是,真正的问题不是选择如何获取Context
(如果您在 Activity 中而不是将实例View,
传递给就足够了),而是如何从字符串中获取资源标识。Activity
makeText()
String
尝试这个
Toast.makeText(getApplicationContext(), getApplicationContext().getResources.getString(R.string.imgval), Toast.LENGTH_SHORT).toShow();