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

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


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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Ajax beforeSend和complete 方法

    Ajax beforeSend和complete 方法

    2021年10月9日
  • java反射机制原理详解

    java反射机制原理详解????Java学习路线配套文章:Java学习路线总结,搬砖工逆袭Java架构师(全网最强)????基础推荐:Java基础教程系列????实战推荐:SpringBoot基础教程????简介:Java领域优质创作者????、CSDN哪吒公众号作者✌、Java架构师奋斗者????????扫描主页左侧二维码,加入群聊,一起学习、一起进步????欢迎点赞????收藏⭐留言????目录一、前情提要1、需求由于某种原因,您可能在项目中遇到类似的需求:你需要读取一个文件,比

    2022年8月24日
  • UFT自动化测试

    UFT自动化测试自动化测试静态自动化:代码检测,类似于编译工具的编译系统动态自动化:基于浏览器和DOM对象的自动化:selemnium,Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7、8、9)、MozillaFirefox、MozillaSuite等。这个工具的主要功能包括:测试与浏览器的兼容性–测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能–创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成Net、J…

    2022年5月28日
  • Pycharm中调用kinect_python中的pandas库

    Pycharm中调用kinect_python中的pandas库pycharm中调用pandas1.因为学习了pandas的知识点,所以就找些实例去练手。结果在pycharm中输入importpandsaspd时,pandas单词这里会被标注红色,然后根据提示,我就去settings…中去进行设置,settings->project->projectinterpreter可以看到package中没有pandas包。点击右上角的加…

    2022年8月29日
  • 范冰:增长黑客入门训练营

    范冰:增长黑客入门训练营之前刚入门产品的时候,增长的概念已经很流行了,连着读了SeanEllis的《增长黑客:如何低成本实现爆发式成长》和范冰的《增长黑客:创业公司的用户与收入增长秘籍》以及相应的公开课,如果你不知道SeanEllis,那我觉得你应该认真花点时间去了解一下这位“增长黑客之父”了,之前已经分享过SeanEllis的公开课和关于这本书的读书笔记,比较开心的是无意中发现2019年《增长黑客:创业公司的用户与收入增长秘籍》的作者范冰就已经亲自开了这本增长黑客的课程,还是觉得好物不容错过!欢迎要资源,欢迎交流沟通过~

    2022年5月11日
  • spring整合log4j_spring整合log4j

    spring整合log4j_spring整合log4j常用日志框架log4j、log4j2(log4j的升级版,最常用的)、logback(spring boot默认)、Jboss-logging…等slf4 是日志接口规范,代码对接slf4,实现和具体日志框架解耦,无需修改编码即可切换日志框架。修改pom依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-st

    2022年8月9日

发表回复

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

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