来自资源字符串的 Toast.makeText

2023-11-30

我有一个名为 MyPrimaryClass 的类,该类有一个按钮,按下时会创建一个类为 myClassForResult 的 Intent。

我用它来启动它:

startActivityForResult(myIntentOfMyClassForResult, ACTIVITY_EDIT_BTEXT);

MyPrimaryClass 和 myClassForResult 都扩展了 Activity。

因此,当我在 myClassForResult 中使用 R.string.my_resource_string 的文本参数调用 Toast.makeText 时,它会强制关闭!

我已经尝试过这个:

Context c = myClassForResult.this;
Toast toast = Toast.makeText(c,
    c.getResources().getString(R.string.my_resource_string),
    Toast.LENGTH_SHORT);
toast.show();

还有这个:c = getApplicationContext()

还有这个:c = getBaseContext()

还有这个:

Context c = MyPrimaryClass.this;
Toast toast = Toast.makeText(c,
    R.string.my_resource_string,
    Toast.LENGTH_SHORT);
toast.show();

如果我使用内联字符串,例如“My toast Text!”,它就可以工作。但我需要从资源中获取一个字符串。

-问题解决了:

为了解决这个问题,我将Toast的持续时间更改为Toast.LENGTH_LONG

字符串R.string.my_resource_string值为“标题为空”

当我将其值更改为“标题”时,它工作正常,因此我猜测该字符串对于 Toast.LENGTH_SHORT 持续时间来说太长。

但是当我将持续时间更改为吐司.LENGTH_LONG,我可以使用长字符串。

Context c = MyPrimaryClass.this;
Toast toast = Toast.makeText(c,
    R.string.my_resource_string,
    Toast.LENGTH_LONG);
toast.show();

需要注意一件事:

Toast toast = Toast.makeText(c,
    c.getResources().getString(R.string.my_resource_string),
    Toast.LENGTH_SHORT);
toast.show();

可以简化为:

Toast.makeText(c,
    c.getResources().getString(R.string.my_resource_string),
    Toast.LENGTH_SHORT).show();

这可以为您节省不需要的对象引用。

您需要了解的一件事是,每当您在包中引用 R(而不是 android.R.)时,只要您拥有 Context,您就可以访问您的资源。

Update

在意识到你用它做什么之后,我会推荐你 改变你的方法,虽然这实际上是可能的,但您的方法对于如此简单的事情并不理想。

startActivityForResult(xx) 方法通常适用于您想要启动包外部的应用程序以获取结果的情况。

例如:如果我想从产品中检索条形码,那么我会启动该条形码类的 Intent,间接地通过一个动作。然后我将通过使用 onActivityResult(xx) 检索数据。

它使No Sense为您自己的课程执行此操作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

来自资源字符串的 Toast.makeText 的相关文章

随机推荐

  • 在Android应用程序中显示TIFF格式图像

    我只能找到一篇关于此问题的先前帖子 并且提供的答案似乎无法正常工作 有没有办法在 Android 中显示具有捏合 缩放功能的 TIFF 图像 编写一个应用程序 我需要显示 TIFF 图像 事实上 似乎有一种方法可以在 Android 上显示
  • 如果.NET SqlConnection对象没有关闭,它会导致内存泄漏吗?

    我明白你需要打电话 Close on a SqlConnection对象在使用完毕后将底层 SQL 连接释放回池中 但如果您不这样做 即使超出范围后 NET 对象是否仍保留在内存中 我问这个问题是因为我正在处理一些遇到内存泄漏的代码 并且我
  • 如何在linux操作系统中设置solr/home?

    我知道如何配置solr home使用Tomcat 6 但我不知道如何设置solr home使用 Glassfish V2 1 我尝试过设置solr home in profile作为研究员 export solr home home hue
  • 打印时间时出现意外输出。时间类型别名

    我正在尝试为自定义类型编写一个解组函数 考虑下面的代码 操场 package main import encoding json fmt strings time type Time time Time func st Time Unmar
  • Spring Boot 安全注销不会使会话失效

    我的增强型宠物诊所应用程序需要安全性 目前注销功能似乎不起作用 我有一个 GET 版本 简单链接 和一个 POST 版本 通过链接提交的隐藏表单 登录后 无论我使用哪种方式注销 一旦我尝试再次登录 就不允许新的登录 我相信这与本节相关 se
  • 如何绘制Windows经典风格的窗口元素

    我们在程序中创建了一些自定义 窗口 当VisualStyles启用后 我们可以找到窗口的每个元素及其大小 并使用适当的渲染器自行绘制它们 包括最小化和关闭按钮 我们想做同样的事情VisualStyles已被禁用 目前正在绘制我们自己的窗口
  • JFreeChart PolarPlot:数学方向

    我想创建一个极坐标图 其中数据以数学方向绘制 因此 该系列从东方开始 然后逆时针继续 JFreeChart 的默认行为PolarPlot是从北开始并顺时针继续系列 是否有对此内置的支持PolarPlot班级 我知道如何转换数据以达到目标 但
  • 合并 2 个具有不同列名的数据框

    在 R 中 我有 2 个数据框 它们都有不同的列名称 我想根据列号组合每个数据框的行 我的数据框如下 gt d1 X 0 52 V2 X 0 52 V4 1 ABT 700 2 AMD 9600 3 AMG 600 4 AGCO 800 g
  • 如何将 Eigen::Matrix 映射到 std::vector

    例如 如果我有一个Eigen MatrixXd大小为 10 列和 3 行 我如何将其别名为std vector的 10 个元素Eigen Vector3d 当我说别名时 我的意思是使用相同的内存块而不进行复制 我知道我可以通过以下方式进行反
  • 如何使用 Firebase 云消息传递

    我找不到任何有关新版本的文档 版本7和版本6有大量文档 而版本9几乎不存在 不仅是我 大多数人都找不到 我只是想向后台发送简单的通知 如果有人分享有关新版本的文档 我将非常高兴 或者我应该使用旧版本 我想您知道如何将 firebase 添加
  • 在 C# 中将字符串转换为枚举标记[重复]

    这个问题在这里已经有答案了 可能的重复 如何在 C 中将字符串转换为枚举 如何在 C 中将字符串 文本 转换 强制转换 为 Enum 标记值 你可以这样做 MyEnum oMyEnum MyEnum Enum Parse typeof My
  • 使用 VBA 获取在 VBA 中使用的唯一值?

    我目前会使用类似的东西与范围 单元格或类似的许多不同的方式相同的基本原理 Range A1 Range A1 End xlDown AdvancedFilter Action xlFilterCopy CopyToRange Range I
  • 尝试为 Haskell 中的函数创建有效的算法

    我正在寻找一种有效的多项式时间解决方案来解决以下问题 实现一个递归函数节点 x y 来计算数字三角形中的第 x y 个数字 定义为 g x y 0 if x gt y 1 if x y 0 0 sum of all incoming pat
  • 使用 VS 2015 Update 2 配置 tslint

    我无法让 tslint 在 Visual Studio 2015 中正常工作 我应该明确指出 我安装了更新 2 我有 Web Essentials 但它声称它不再包含 linters 我没有网络分析器 如果这很重要的话 这是一个 ASP N
  • 有没有办法在 Gradle KTS 中实例化 KTS 脚本引擎?

    我想在我的项目构建过程中使用 3d party 库 库方法需要 ScriptEngine 当我尝试实例化它时 出现错误 java lang IllegalArgumentException Unable to construct scrip
  • Mongoose findOneAndUpdate:更新对象数组中的对象

    我有与此线程中描述的完全相同的问题 因此有类似的标题 Mongoose findOneAndUpdate 更新对象数组中的对象 给定这个模型 const SavedFoodsSchema new Schema user type Schem
  • 为什么我的组件没有包装在 Swing 的 FlowLayout 中?

    为什么我的组件没有使用 FlowLayout 包装在这个 JPanel 中 它们只是跑出屏幕并且仅部分可见 JPanel panel new JPanel new FlowLayout panel add new JLabel TEST r
  • 如何在nodejs中使用typescript/flow而不编译它

    有人可以给我一些建议或链接来讨论我是否应该为后端捆绑 JS 我尝试用这个标题 和类似的词 搜索谷歌 但找不到任何有用的链接 只是想知道 假设我正在使用最新的 Node JS es6 ready 我应该捆绑 编译 JS 吗 如果没有 我该如何
  • 循环 Observable 数据,推送到数组,并显示数组打字稿的所有结果

    我如何循环遍历我作为 Observable 订阅的数据 将其推送到数组 并显示数组的全部数据 我目前的代码仅显示每个 页面 的数据 而不是所有页面 我之所以要这样做 是因为我想制作无限滚动 谢谢你 成分 this storiesServic
  • 来自资源字符串的 Toast.makeText

    我有一个名为 MyPrimaryClass 的类 该类有一个按钮 按下时会创建一个类为 myClassForResult 的 Intent 我用它来启动它 startActivityForResult myIntentOfMyClassFo