android吐司打印奇怪的数字而不是单词

时间:2013-02-13 04:16:27

标签: android toast

对于以下吐司,为什么以下代码

Toast message = Toast.makeText(getContext(), R.string.message_saved + savedFilePath, Toast.LENGTH_SHORT);

显示一些奇怪的数字,例如2131099680 / mnt / sdcard / 路径而不是所需的“你的图像保存在:/ mnt / sdcard / 路径

怎么可以修改?感谢!!!

2 个答案:

答案 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正在扩展ViewView 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();