鸿蒙手机计算器开发练习
头像 宋你一朵小红花 2021-06-02 11:01:02    发布
3693 浏览 26 点赞 24 收藏

一、具体功能实现

运行项目后点击数字和运算符,然后点击运算得到结果

如果直接点击计算会给出提示

 

鸿蒙手机计算器开发练习-鸿蒙开发者社区


如何输入不符合要求的算式会给出提示

例如

第一项是运算符或连续输入运算符或最后一项是运算符会提示

鸿蒙手机计算器开发练习-鸿蒙开发者社区

鸿蒙手机计算器开发练习-鸿蒙开发者社区


 

 

鸿蒙手机计算器开发练习-鸿蒙开发者社区


0做除数会提示

 

鸿蒙手机计算器开发练习-鸿蒙开发者社区


正常测试

 

鸿蒙手机计算器开发练习-鸿蒙开发者社区


结果

 

鸿蒙手机计算器开发练习-鸿蒙开发者社区


二、部分核心代码展示

// 循环数字数组
for (int i = 0; i < numButtons.length; i++) {
   int finalI = i;
   numButtons[i].setClickedListener((component) -> text.setText(text.getText() + numButtons[finalI].getText()));
}
// 循环操作符数组
for (int i = 0; i < operatorButtons.length; i++) {
   int finalI = i;
   operatorButtons[i].setClickedListener((component) -> {
       if(text.getText().equals("")) {
           new ToastDialog(getContext()).setAutoClosable(true).setSize(800,100).setDuration(2000).setText("请先输入数字").show();
           return;
       } else if(operators.contains(text.getText().substring(text.length()-1))) {
           new ToastDialog(getContext()).setAutoClosable(true).setSize(800,100).setDuration(2000).setText("请不要连续输入运算符").show();
           return;
       }
       text.setText(text.getText() + operatorButtons[finalI].getText());
   }
);
}


// 设置退格键的点击事件
backspace.setClickedListener((component) -> {
   if (text.getText()!=null && !text.getText().trim().equals(""))
       {
           text.setText(text.getText().substring(0,text.length()-1));
       }
});

// 计算结果
button.setClickedListener((component) -> {
   String target = text.getText();
   if (operators.contains(text.getText().substring(text.length()-1))) {
       new ToastDialog(getContext()).setAutoClosable(true).setSize(800,100).setDuration(2000).setText("请不要以运算符结尾").show();
       return;
   } else if (target.contains("错误")) {
       new ToastDialog(getContext()).setAutoClosable(true).setSize(800,100).setDuration(2000).setText("请").show();
       return;
   }
   try {
       if ((Calculate.cacl(Calculate.analyze(target)) + "").equals("Infinity")) {
           new ToastDialog(getContext()).setAutoClosable(true).setSize(800, 100).setDuration(2000).setText("0不能作为除数").show();
       } else {
           text.setText(Calculate.cacl(Calculate.analyze(target))+ "");
       }
   } catch (Exception e) {
       e.printStackTrace();
   }
});

三、完整代码下载地址

https://gitee.com/jltfcloudcn/jump_to/tree/master/JLTFCalculator

©本站发布的所有内容,包括但不限于文字、图片、音频、视频、图表、标志、标识、广告、商标、商号、域名、软件、程序等,除特别标明外,均来源于网络或用户投稿,版权归原作者或原出处所有。我们致力于保护原作者版权,若涉及版权问题,请及时联系我们进行处理。
分类
其它
头像

宋你一朵小红花

我还没有写个人简介......

881

帖子

0

提问

1679

粉丝

关注
热门推荐
地址:北京市朝阳区北三环东路三元桥曙光西里甲1号第三置业A座1508室 商务内容合作QQ:2291221 电话:13391790444或(010)62178877
版权所有:电脑商情信息服务集团 北京赢邦策略咨询有限责任公司
声明:本媒体部分图片、文章来源于网络,版权归原作者所有,我司致力于保护作者版权,如有侵权,请与我司联系删除
京ICP备:2022009079号-2
京公网安备:11010502051901号
ICP证:京B2-20230255