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

标签 android toast

为了下面的 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/

相关文章:

java - 致命异常

java - 如何将图像从一个 fragment 发送到另一个 fragment ?

java - 使用 Activity 上下文将自定义对象从 Activity 传输到 Activity ?

javascript - 如何在 TUI 日历中禁用设置随机日程顺序

Python Selenium 等待 toast 消息消失

java - 在 PreferenceFragment 中解码时未找到类

java - 如何从raw文件夹中读取pdf文件?

java - 当屏幕旋转时,用户可以欺骗 Android

java - Android 开发 - 编译正常,运行时崩溃

android - Android WebView 中只有一个 javascript 警报,然后它停止响应