Android studio:错误: 需要常量表达式

Android studio:错误: 需要常量表达式

将一个项目作为library,通过import Moudle导入一个新项目引用时,爆出这个错误:需要常量表达式,定位到switch。于是百度一下,解决方法为把switch case,改成if else,即:

  switch (v.getId()) {// 点击了清除按钮case R.id.btn_clear:clear();break;// 点击了取消按钮case R.id.btn_cancel:break;// 点击了加、减、乘、除按钮case R.id.btn_plus:case R.id.btn_minus:case R.id.btn_multiply:case R.id.btn_divide:operator = inputText; // 运算符refreshText(showText + operator);break;// 点击了等号按钮case R.id.btn_equal:// 加减乘除四则运算double calculate_result = calculateFour();refreshOperate(String.valueOf(calculate_result));refreshText(showText + "=" + result);break;// 点击了开根号按钮case R.id.ib_sqrt:double sqrt_result = Math.sqrt(Double.parseDouble(firstNum));refreshOperate(String.valueOf(sqrt_result));refreshText(showText + "√=" + result);break;// 点击了求倒数按钮case R.id.btn_reciprocal:double reciprocal_result = 1.0 / Double.parseDouble(firstNum);refreshOperate(String.valueOf(reciprocal_result));refreshText(showText + "/=" + result);break;// 点击了其他按钮,包括数字和小数点default:// 上次的运算结果已经出来了if (result.length() > 0 && operator.equals("")) {clear();}// 无运算符,则继续拼接第一个操作数if (operator.equals("")) {firstNum = firstNum + inputText;} else {// 有运算符,则继续拼接第二个操作数secondNum = secondNum + inputText;}// 整数不需要前面的0if (showText.equals("0") && !inputText.equals(".")) {refreshText(inputText);} else {refreshText(showText + inputText);}break;}

改为:

 @Overridepublic void onClick(View v) {String inputText;if(v.getId() == R.id.btn_sqrt){inputText = "厂";} else {inputText = ((TextView) v).getText().toString();}if (v.getId() == R.id.btn_clear){clear();} else if (v.getId() == R.id.btn_cancel) {} else if (v.getId() == R.id.btn_plus || v.getId() == R.id.btn_minus || v.getId() == R.id.btn_multiply || v.getId() == R.id.btn_divide) {operator = inputText;refreshText(showText + operator);} else if(v.getId() == R.id.btn_equal) {double calculate_result = calculateFour();refreshOperate(String.valueOf(calculate_result));refreshText(showText + "=" + result);} else if(v.getId() == R.id.btn_sqrt) {double sqrt_result = Math.sqrt(Double.parseDouble(firstNum));refreshOperate(String.valueOf(sqrt_result));refreshText(showText+"厂="+result);} else if(v.getId() == R.id.btn_reciprocal){double reciprocal_result = 1.0 / Double.parseDouble(firstNum);refreshOperate(String.valueOf(reciprocal_result));refreshText(showText+"/="+result);} else {if(result.length() > 0 && operator.equals("")){clear();}if(operator.equals("")){firstNum = firstNum + inputText;} else {secondNum = secondNum + inputText;}if(showText.equals("0") && !inputText.equals(".")){refreshText(inputText);} else {refreshText(showText+inputText);}}}

具体原因:http://tools.android.com/tips/non-constant-fields.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/687304.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ABC341A-D题解

文章目录 A题目AC Code: B题目AC Code: C题目AC Code: D题目你以为这就完了? 时间复杂度分析:AC Code: E A 题目 这个没什么好说的,就先输出一个 1,再输出 n n n 个 01就大功告成…

sqlserver 内连接,左连接,右连接,全连接,自连接

在 SQL Server 中,可以使用不同类型的连接来联接两个表或视图。以下是这些连接类型的简要说明: 内连接(Inner Join): 内连接是最常用的连接类型,它返回两个表中满足连接条件的行。语法如下: SELECT t1.co…

django中事务和锁

目录 一:事务(Transactions) 二:锁 在Django中,事务和锁是数据库操作中的两个重要概念,它们用于确保数据的完整性和一致性。下面我将分别解释这两个概念在Django中的应用。 一:事务&#xff…

【软件相关】基于Alist挂载云盘到本地文件资源管理器

文章目录 0 前言1 Alist挂载云盘2 RaiDrive配置3 rclone配置 0 前言 因为最近在研究各种云盘存储影视资源的方法,无意间看到一个教程是利用软件将云盘挂载到本地的资源管理器,这样就能实现类似本地文件操作的方式来操作云盘文件,还是有点意思…

EasyRecovery软件免费版与付费版有哪些功能区别?

免费版的EasyRecovery软件在功能和恢复能力上确实存在一些限制。 首先,在数据恢复方面,免费版通常只能恢复最多1GB的数据。这意味着,如果你需要恢复的数据量超过1GB,你将需要升级到付费版才能完全恢复。 其次,免费版…

车载软件架构 —— Adaptive AUTOSAR软件架构中通信管理、诊断管理策略

车载软件架构 —— Adaptive AUTOSAR软件架构中通信管理、诊断管理策略 第四篇 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师(Wechat:gongkenan2013)。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 本就是小人物,输了就是输了,不要在意…

【大厂AI课学习笔记】【2.1 人工智能项目开发规划与目标】(6)特征工程初步

特征工程是一个非常重要的概念,从特征工程可以领会到机器学习的真谛。 特征工程就是从原始数据转换为特征向量的过程。 特征工程的特点: 特征工程是机器学习中很重要的起始步骤,直接影响效果,需要大量的时间。 数据和特征决定了…

MySQL高级特性篇(2)-空间数据类型与GIS的整合

MySQL数据库是一种常用的关系型数据库管理系统,它提供了丰富的数据类型来满足各种应用需求。其中,空间数据类型是MySQL的一项重要功能,与地理信息系统(GIS)的整合在地理空间数据分析和可视化方面具有重要意义。 空间数…

【Chrono Engine学习总结】5-sensor-5.2-导出lidar数据的方法与原理探究

由于Chrono的官方教程在一些细节方面解释的并不清楚,自己做了一些尝试,做学习总结。 1、Sensor数据生成流程回顾 Chrono里面,sensor的数据生成、可视化、以及保存,都需要单独进行设置才能实现。sensor数据的采集流程如下https:/…

[opencv][windows]cmake opencv opencv_contrib所需的缓存文件下载

这个是windows上源码编译opencvopencv-contrib时候cmake时候缓存文件,只需要将压缩文件夹解压到源码目录下面,cmake-gui上configure时候就不会报错,注意解压后文件夹名字是.cache,文件夹名字不能改变,比如opencv/.cache,有的人解压…

【LeetCode: 429. N 叉树的层序遍历 + BFS】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

Landsat8_C2_SR数据集是经大气校正后的地表反射率数据

数据名称: Landsat8_C2_SR 数据来源: USGS 时空范围: 2020年1月-2023年3月 空间范围: 全国 数据简介: Landsat8_C2_SR数据集是经大气校正后的地表反射率数据,属于Collection2的二级数据产品&#…

Java学习笔记2024/2/17

面向对象综合练习--课程讲解,主理解 练习一:文字版格斗游戏 需求: 格斗游戏,每个游戏角色的姓名,血量,都不相同,在选定人物的时候(new对象的时候),这些信息就应该被确…

react反向代理

http-proxy-middleware 使用npm安装 npm i -D http-proxy-middleware 文档 点击查看 关键代码 const { createProxyMiddleware } require(http-proxy-middleware);module.exports function(app) {app.use(/api, // api开头的地址的请求createProxyMiddleware({target: ht…

springboot196高校教师科研管理系统

Spring Boot高校教师科研管理系统设计与实现 摘 要 社会发展日新月异,用计算机应用实现数据管理功能已经算是很完善的了,但是随着移动互联网的到来,处理信息不再受制于地理位置的限制,处理信息及时高效,备受人们的喜…

Linux mcopy命令教程:在Linux和MS-DOS之间复制文件(附实例详解和注意事项)

Linux mcopy命令介绍 mcopy是mtools工具包的一部分,它用于在Linux和MS-DOS格式的分区之间复制文件。mcopy可以复制单个文件到指定的文件名,或者复制多个文件到指定的目录中。 Linux mcopy命令适用的Linux版本 mcopy命令在大多数Linux发行版中都可以使…

javascript中的行为委托设计模式【详解】

文章目录 深入探讨 JavaScript 行为委托设计模式什么是行为委托?为何选择行为委托?如何使用行为委托?行为委托的实际应用行为委托的原理行为委托的优点实践应用 深入探讨 JavaScript 行为委托设计模式 JavaScript 是一门灵活且强大的语言&am…

casbin 权限管理库介绍 (规范实现 acl, rbac,abac)等

Casbin介绍 日常开发中我们经常需要设计用户对资源的访问权限控制。我发现手动设计模型、数据库表定义很不规范, 所以进行了一些调研。我发现casbin这个库很大程度上实现了标准化的需求, 牛刀小试引入了公司的一个需求中, 感觉开发效率确实很…

FlashMeeting(基于FFmpeg+openCV)视频语音通讯系统

Web端体验地址:https://download.csdn.net/download/XiBuQiuChong/88805337 客户端下载地址:https://download.csdn.net/download/XiBuQiuChong/88805337 FlashMeeting(基于FFmpegopenCV)是一整套先进的以FFmpegopenCV技术为基础的视频语音通讯系统。利…

ArcGIS学习(八)基于GIS平台的控规编制办法

ArcGIS学习(八)基于GIS平台的控规编制办法 上一任务我们学习了”如何进行图片数据的矢量化?" 这一关我们来学习一个比较简单的案例一一”如何在ArcGIS中录入控规指标,绘制控规图纸?" 首先,先来看看这个案例的分析思路以及导入CAD格式的控规图纸。 接着,来看…