在 Switch 中使用资源 XML 中的字符串?

2024-02-18

对于 Android 新手,如果这是一个简单的问题,我深表歉意。

我正在尝试在 XML 中使用基于字符串资源的开关。它看起来像这样:

switch (myStringVariable) {
    case getResources().getString(R.string.first_string):
         break;
    case getResources().getString(R.string.second_string):
         break;
    case getResources().getString(R.string.third_string):
         break;
    default:
         break;
}

不幸的是,这行不通。我得到的错误是“需要常量表达式”。

有没有一种半优雅的方法来解决这个问题,而不必执行诸如创建 3 个 String 对象并将字符串资源分配给每个对象之类的操作?我觉得我错过了一些明显的东西,所以任何帮助都会很棒!

谢谢 :)


嗯,首先,Android所基于的Java版本不支持String switch语句,所以一般你必须使用if/else而是块。

EDIT:如果您使用 JDK 1.7 及更高版本,则支持字符串 switch 语句

我不确定你的用例是什么,但如果你有资源 IDmyStringVariable,这是一个int,你可以进行切换:

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

在 Switch 中使用资源 XML 中的字符串? 的相关文章

  • 如何使用 Retrofit 解析嵌套 json....?

    我不知道该怎么办使用 Retrofit 解析 json 熟悉使用 Retrofit 解析简单的 json 但不熟悉解析嵌套Json using Retrofit 这是我的 Json 数据 current observation image
  • 从jar中获取资源

    我有包含文件的 jar myJar res endingRule txt myJar wordcalculator merger Marge class 在 Marge java 中我有代码 private static final Str
  • Akka 与现有 java 项目集成的示例

    如果我已经有现有的javaWeb 应用程序使用spring and servlet容器 将 Akka 集成到其中的正确方法是什么 就像我将会有Actor1 and Actor2互相沟通的 开始使用这些演员的切入点是什么 例如 1 把它放在那
  • 在Java中运行bat文件并等待

    您可能会认为从 Java 启动 bat 文件是一项简单的任务 但事实并非如此 我有一个 bat 文件 它对从文本文件读取的值循环执行一些 sql 命令 它或多或少是这样的 FOR F x in CD listOfThings txt do
  • Android:如何创建模态进度“轮”叠加层?

    我想在我的视图上显示模式进度 轮子 叠加层 ProgressDialog 很接近 但我不想要对话框背景或边框 我尝试设置对话框窗口的背景可绘制 this progressDialog new ProgressDialog Main this
  • 如何将 HTML 链接放入电子邮件正文中?

    我有一个可以发送邮件的应用程序 用 Java 实现 我想在邮件中放置一个 HTML 链接 但该链接显示为普通字母 而不是 HTML 链接 我怎样才能将 HTML 链接放入字符串中 我需要特殊字符吗 太感谢了 Update 大家好你们好 感谢
  • Android 为什么这不会抛出错误的线程异常?

    我的印象是视图只能从主线程操作 但是 为什么这不会崩溃 public class MainActivity extends Activity TextView tv Override protected void onCreate Bund
  • Android SHA1 发布密钥库无法与 Google 地图配合使用

    我正在使用 Google Maps Android API 但遇到了一些问题 我正在使用 android studio 签署我的 apk 在 android keystore jks 创建一个 另外 我选择 发布 作为其中的类型 我已经使用
  • 为什么 Google 建议将库复制到您的树中?

    谷歌的Play 服务 API 的使用说明 http developer android com google play services setup html 例如 说 将 extras google google play service
  • hibernate 6.0.2.Final 和 spring boot 2.7.0 的entityManagerFactory bean 未配置问题

    所以最近我想升级我的 Spring Boot 项目项目的一些依赖项 特别是这些组件 雅加达 EE 9 弹簧靴2 7 休眠 6 0 2 Final 完成此操作后 所有更新和代码折射 更新将 javax 导入到 jakarta 以及一些 hib
  • Android Studio代理设置构建错误

    每当我尝试在 Android Studio 中构建应用程序时 都会收到以下错误 Error 169 254 16 169 254 16 Will ignore proxy settings for these hosts 我收到错误 5 次
  • React Native HTTPS Api 调用在 IOS 中有效,但在 Android 中无效

    所以基本上我所做的就是简单地对启用了 HTTPS 的 UAT 服务器进行简单的 Axios 调用 我已经在 IOS 中测试了整个应用程序 API 调用工作正常 但一旦我在 Android 中测试了相同的应用程序 在真正的 Android 设
  • Android:分配内存失败

    我正在尝试创建一个具有 2047 mb 内存的模拟器 当我运行它时 我收到此错误 2011 02 22 14 24 14 Emulator 2011 02 22 14 24 14 Emulator This application has
  • 在 Spring 上下文中查找方法级自定义注释

    我想知道的是 所有的类 方法Spring http en wikipedia org wiki Spring Framework注释为 Versioned的bean 我创建了自定义注释 Target ElementType METHOD E
  • 将 JScrollPane 添加到 JFrame

    我有一个关于向 Java 框架添加组件的问题 我有一个带有两个按钮的 JPanel 和一个添加了 JTable 的 JScrollPane 我想将这两个添加到 JFrame 中 我可以将 JPanel 添加到 JFrame 或将 JScro
  • 在java中以原子方式获取多个锁

    我有以下代码 注意 为了可读性 我尽可能简化了代码 如果我忘记了任何关键部分 请告诉我 public class User private Relations relations public User relations new Rela
  • 如何在android中安装和使用couch db

    我应该如何在 android 中安装和使用 couch Db 我的意思是本地沙发数据库 我可以在平板电脑和模拟器中使用它 为此我必须遵循哪些步骤 我目前正在开发一个使用它的项目 有两种选择 1 couchbase android 是的 co
  • Android View Canvas onDraw 未执行

    我目前正在开发一个自定义视图 它在画布上绘制一些图块 这些图块是从多个文件加载的 并将在需要时加载 它们将由 AsyncTask 加载 如果它们已经加载 它们只会被绘制在画布上 这工作正常 如果加载了这些图片 AsyncTask 就会触发v
  • ARM Chromebook 上的 Android 开发环境?

    我尝试了多次安装和使用安卓工作室 https developer android com studio index html on an ARM Chromebook C100P https archlinuxarm org platfor
  • 抛出 Java 异常时是否会生成堆栈跟踪?

    这是假设我们不调用 printstacktrace 方法 只是抛出和捕获 我们正在考虑这样做是为了解决一些性能瓶颈 不 堆栈跟踪是在构造异常对象时生成的 而不是在抛出异常对象时生成的 Throwable 构造函数调用 fillInStack

随机推荐

  • 使用 Numpy 或 TensorFlow 实现多个 2D 矩阵的高效轴方向笛卡尔积

    因此 首先 我认为我想要实现的是某种笛卡尔积 但仅在各列之间按元素进行 我想做的是 如果您有多个大小为 N D1 N D2 N D3 N Dn 的二维数组 因此 结果是跨 axis 1 的组合乘积 最终结果的形状为 N D 其中 D D1
  • BufferedReader 不读取过去的空行[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我试图找出
  • djangorest框架迭代模型序列化器中的字段

    我想迭代 ModelSerializer 中的字段并希望将这些字段设置为必填字段 这不起作用 我怎样才能做到这一点 有人请帮助我 class CustomerSerializer serializers ModelSerializer cl
  • Github Actions 徽章不显示状态

    我在我的存储库上运行了很多次 github 操作 没有出现任何问题 并且在我的存储库之一上使用相同的脚本 它显示 无状态 回购协议是 https github com aurelpere python planif https github
  • 如何使用 JDBC 从数据库检索 SDO_GEOMETRY?

    我是 Java 新手 我需要从数据库检索 SDO GEOMETRY 并使用 jdbc 将其转换为字符串 如果有人有示例或想法 请与我分享 如有帮助 将不胜感激 此致 Sanjay 看看几何学 http download oracle com
  • django.db.utils.OperationalError:(2005,“未知的 MySQL 服务器主机 'db' (-2)”)

    我正在尝试在 docker 容器中运行 django 和 mysql version 2 services db image mysql latest volumes db var lib mysql ports 3306 3306 env
  • 检查编译单元的 DWARF 版本

    全部 有没有工具可以检查文件的 DWARF 版本 像这样的东西 dwarf tool binary name 4 在Linux环境下 如果你安装了 GCC 你应该有readelf可执行的 所以你可以尝试这个 readelf debug du
  • UITableViewRowAnimationFade 不起作用

    所以 这个问题是从上一期 https stackoverflow com questions 11330153 但我决定发布一个新问题以保持相关性和整洁 基本上 当调用下面这段代码时 两者没有区别UITableViewRowAnimatio
  • 系统错误:父模块“未加载”,无法执行相对导入[重复]

    这个问题在这里已经有答案了 我有以下目录 myProgram app init py main py mymodule py mymodule py class myclass object def init self pass def m
  • 如何将mongodb与casbah的连接池化?

    我正在使用 mongodb 和 scala 驱动程序casbah 如果我没理解错的话 它不提供连接池 有没有 casbah 的池库 比如dbcp c3p0用于 jdbc 连接 Casbah 包装了 MongoDB Java 驱动程序 它提供
  • 正确地将参数传递给 Go Exec

    我正在尝试学习 Go 作为开始 我想尝试构建一个超级简单的 Web 服务器来控制我的 iTunes 我用过osascript e Tell Application iTunes to playpause 过去曾多次出于此目的 我想我可以简单
  • 本地数据库 API - 已弃用 有什么替代方案? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 稀疏矩阵作为 R 中层次聚类的输入

    我有一个关于使用距离矩阵进行聚类的问题 但稀疏 是否存在不扩展矩阵并且可以使用稀疏表示的稀疏距离对象格式 目前我正在做以下事情 read sparse matrix sparse lt readMM sparse matrix distan
  • C#:将int[]转换为字符串的最有效方法

    我确实知道此类问题已经被回答过很多次了 尽管我找到了很多可能的答案 但它们仍然没有解决我的问题 即实现将整数数组转换为单个字符串的最快方法 我有例如 int Result new int 1753387599 1353678530 9870
  • 序言中的有效括号列表

    我正在尝试测试括号列表是否有效 我的代码 checkbrackets checkbrackets T T List checkbrackets List checkbrackets T T List append Rest T checkb
  • 使用 Simba 驱动程序将 ODBC 连接到 AzureDatabricks

    我只是想为 Databricks Cluster 设置 ODBC 驱动程序 根据MS文档 https learn microsoft com en us azure databricks kb bi jdbc odbc troublesho
  • 如何将温斯顿日志文件限制为特定数量

    我正在考虑使用 Winston 的日志轮换功能 有没有办法限制日志文件的数量 例如 如果我每天轮换文件 有没有办法指定我只想保留最近三天的日志 来自评论 Aleksandr M maxFiles是那个财产 它可以这样读 dailyRotat
  • Java 8 中 Collections.sort 的问题

    Entity NamedQueries NamedQuery name FolderNode findByName query SELECT f FROM FolderNode f WHERE f name name AND f paren
  • 如何使图例出现在饼图 (Chart.JS) 的右侧?

    我正在使用 Chart JS 创建一个相当简单的饼图 如下所示 var data labels Bananas 18 Lettuce Romaine 14 Melons Watermelon 10 Pineapple 10 Berries
  • 在 Switch 中使用资源 XML 中的字符串?

    对于 Android 新手 如果这是一个简单的问题 我深表歉意 我正在尝试在 XML 中使用基于字符串资源的开关 它看起来像这样 switch myStringVariable case getResources getString R s