switch…case结构中case后的表达式必须为常量表达式_switch case语句例子

switch…case结构中case后的表达式必须为常量表达式_switch case语句例子问题我的switch-case语句昨天完美无缺。但是当我今天早些时候运行代码时,eclipse给了我一个错误,用红色突出显示case语句并说:case表达式必须是常量表达式,它是常量我不知道发生了什么。这是我的代码如下:publicvoidonClick(Viewsrc){switch(src.getId()){caseR.id.playbtn:checkwificonnection()…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

问题

我的switch-case语句昨天完美无缺。但是当我今天早些时候运行代码时,eclipse给了我一个错误,用红色突出显示case语句并说:case表达式必须是常量表达式,它是常量我不知道发生了什么。这是我的代码如下:

public void onClick(View src)

{

switch(src.getId()) {

case R.id.playbtn:

checkwificonnection();

break;

case R.id.stopbtn:

Log.d(TAG, “onClick: stopping srvice”);

Playbutton.setImageResource(R.drawable.playbtn1);

Playbutton.setVisibility(0); //visible

Stopbutton.setVisibility(4); //invisible

stopService(new Intent(RakistaRadio.this,myservice.class));

clearstatusbar();

timer.cancel();

Title.setText(” “);

Artist.setText(” “);

break;

case R.id.btnmenu:

openOptionsMenu();

break;

}

}

所有R.id.int都用红色加下划线。

#1 热门回答(252 赞)

在常规的Android项目中,资源R类中的常量声明如下:

public static final int main=0x7f030004;

但是,从ADT 14开始,在库项目中,它们将被声明为:

public static int main=0x7f030004;

换句话说,常量在库项目中不是最终的。因此,你的代码将不再编译。

解决方案很简单:将switch语句转换为if-else语句。

public void onClick(View src)

{

int id = src.getId();

if (id == R.id.playbtn){

checkwificonnection();

} else if (id == R.id.stopbtn){

Log.d(TAG, “onClick: stopping srvice”);

Playbutton.setImageResource(R.drawable.playbtn1);

Playbutton.setVisibility(0); //visible

Stopbutton.setVisibility(4); //invisible

stopService(new Intent(RakistaRadio.this,myservice.class));

clearstatusbar();

timer.cancel();

Title.setText(” “);

Artist.setText(” “);

} else if (id == R.id.btnmenu){

openOptionsMenu();

}

}

在Eclipse中

将光标移动到switch关键字并按Ctrl1然后选择

将’switch’转换为’if-else’。

在Android Studio中

将光标移动到switch关键字并按Alt Alt Enterthen选择

将’switch’替换为’if’。

#2 热门回答(51 赞)

取消选中项目中的”Is Library”属性对我有用。

#3 热门回答(9 赞)

解决方案可以这样做:

只需将值赋给Integer

将变量设为最终

示例:

public static final int cameraRequestCode = 999;

希望这会帮助你。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/187967.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • IoC控制反转「建议收藏」

    IoC控制反转「建议收藏」IoC控制反转IoC控制反转(InversionofControl,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入(DependencyInjection,简称DI),还有一种方式叫“依赖查找”(DependencyLookup)。通过控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体将其所依赖的对象的引用传递给它。也可以说,依赖被注入到对象中。DIDI—DependencyInjection,即“依赖注入”:

    2022年6月15日
    24
  • Typora的最后一个免费版本MD编辑器「建议收藏」

    Typora的最后一个免费版本MD编辑器「建议收藏」title:Typora的最后一个免费版本date:2022-05-1116:39:04tags:MDcategories:软件废话不多说,直接来我的仓库下载就可以了。利用Typora把图片添加到Hexo博客中安装插件。$npminstallhexo-renderer-marked–save2.再修改一下配置文件_config.yml,加入下面的配置。marked:prependRoot:truepostAsset:true3.在“Blog->s

    2022年9月23日
    0
  • 零基础快速打造一个属于自己的微信聊天工具

    零基础快速打造一个属于自己的微信聊天工具

    2021年9月18日
    49
  • 中文字体的种类_漂亮的中文字体

    中文字体的种类_漂亮的中文字体简单来分的话,大致可分为三类:1.古代字体:宋体,楷体等2.现代字体:各种黑体3.形变字体:各种美术字。按照衬线体来分的话:衬线体:宋体非衬线体:楷体,黑体。详情:宋体:宋体是一种衬

    2022年8月3日
    2
  • 测试用例模板和例子_测试用例怎么写 实例

    测试用例模板和例子_测试用例怎么写 实例编写测试用例HttpRunnerv3.x支持三种测试用例格式pytest,YAML和JSON。官方强烈建议以pytest格式而不是以前的YAML/JSON格式编写和维护测试用例格式关系如下图所示

    2022年8月6日
    1
  • URI和URL的区别比较与理解[通俗易懂]

    URI和URL的区别比较与理解[通俗易懂]一、URI<1>什么是URIURI,通一资源标志符(UniformResourceIdentifier,URI),表示的是web上每一种可用的资源,如HTML文档、图像、视频片段、程序等都由一个URI进行定位的。<2>URI的结构组成URI通常由三部分组成:①访问资源的命名机制;②存放资源的主机名;③资源自身的名称。<3>…

    2022年7月27日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号