为了账号安全,请及时绑定邮箱和手机立即绑定

使用整数资源切换大小写

使用整数资源切换大小写

SMILET 2023-10-13 14:35:20
我想使用 switch 命令并在资源文件中定义选择,但出现错误:错误:需要常量表达式您有什么建议吗?资源文件integers.xml<integer name="readID">0x21</integer><integer name="readRevision">0x22</integer>java 文件:switch (cmd) {case getResources().getInteger(R.integer.readID):    break;case getResources().getInteger(R.integer.readRevision):    Log.d(TAG, "case revision");    break;
查看完整描述

3 回答

?
莫回无

TA贡献1865条经验 获得超7个赞

在 Java 中,开关的 case 部分需要一个常量值。

Java 期望使用 getResources().getInteger(R.integer.readID),因为它是一个方法调用,值可能会在运行时更改。 

您可以使用 if、else if、else 结构。


查看完整回答
反对 回复 2023-10-13
?
30秒到达战场

TA贡献1828条经验 获得超6个赞

只需在单独的文件(也许是 Constants.java)中将整数定义为静态常量。


常数


public class Constants{

public static final int READ_ID = 0x11;

public static final int READ_REVISION = 0x22;

}

转变


switch (cmd) {

        case Constants.READ_ID:


            break;

        case Constants.READ_REVISION:


            break;

    }


查看完整回答
反对 回复 2023-10-13
?
桃花长相依

TA贡献1860条经验 获得超8个赞

尝试


private int getInt(@IntegerRes int res){

    return context.getResources().getInteger(res);

}

例如:


switch (cmd) {

case getInt(R.integer.readID):

    break;

case getInt(R.integer.readRevision):

    Log.d(TAG, "case revision");

    break;}


查看完整回答
反对 回复 2023-10-13
  • 3 回答
  • 0 关注
  • 83 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信