一、实验目的:

熟悉Android稍微复杂的逻辑编程,应用网格布局设计一个简单Android计算器界面并能实现加减和清零等功能。

二、实验设备:

1.PC机

2.Windows操作系统

3.Android Studio

三、实验原理简述:

TableLayout是一种可以制作表格的布局,它和GridLayout的区别是GridLayout只能制定每一列宽度一样的表格布局,而TableLayout能够制定各列宽度不一样的表格布局。

3.1  TableLayout的主要属性

android:collapseColumns=”0,1” 隐藏第0列和第1列

android:stretchColumns=”0,1” 第0列和第1列可以向行方向扩展

android:stretchColumns=”*” 所有列可以向行方向扩展

android:shrinkColumns=”0,1” 第0列和第1列可以向列方向扩展

3.2  TableRow子控件的主要属性:

android:layout_column=”1” 该控件显示在第1列

android:layout_span=”2” 该控件占据2列

注意:TableLayout里面的子控件可以为TableRow或者其他View,但是其子控件的android:layout_width属性被系统固定为match_parent,TableLayout里面所有行中某一列的宽度的最大值是这一列的宽度。

四、实验数据记录及数据处理:

在Android Studio新建一个工程,在Palette中选择TableLayout、TableRow、textView和button添加到Component Tree中,并修改主从关系及其id、text和textSIZE。如下图所示:

编写程序,核心代码如下(部分功能省略):

import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;public class MainActivity extends AppCompatActivity {private TextView txtView;private Button btn_n0;private Button btn_n1;private Button btn_n2;private Button btn_n3;private Button btn_n4;private Button btn_n5;private Button btn_n6;private Button btn_n7;private Button btn_n8;private Button btn_n9;private Button btn_add;private Button btn_sub;private Button btn_div;private Button btn_mix;private Button btn_res;private Button btn_c;private Button btn_del;private Button btn_p;private Button btn_pct;private Button btn_dot;int opflag;double kk,kk_add,kk_sub;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);txtView=findViewById(R.id.textView);btn_n0=findViewById(R.id.button_n0);btn_n1=findViewById(R.id.button_n1);btn_n2=findViewById(R.id.button_n2);btn_n3=findViewById(R.id.button_n3);btn_n4=findViewById(R.id.button_n4);btn_n5=findViewById(R.id.button_n5);btn_n6=findViewById(R.id.button_n6);btn_n7=findViewById(R.id.button_n7);btn_n8=findViewById(R.id.button_n8);btn_n9=findViewById(R.id.button_n9);btn_add=findViewById(R.id.button_add);btn_sub=findViewById(R.id.button_sub);btn_div=findViewById(R.id.button_div);btn_mix=findViewById(R.id.button_mix);btn_res=findViewById(R.id.button_res);btn_c=findViewById(R.id.button_c);btn_del=findViewById(R.id.button_del);btn_p=findViewById(R.id.button_p);btn_pct=findViewById(R.id.button_pct);btn_dot=findViewById(R.id.button_dot);btn_n0.setOnClickListener(clickListener);btn_n1.setOnClickListener(clickListener);btn_n2.setOnClickListener(clickListener);btn_n3.setOnClickListener(clickListener);btn_n4.setOnClickListener(clickListener);btn_n5.setOnClickListener(clickListener);btn_n6.setOnClickListener(clickListener);btn_n7.setOnClickListener(clickListener);btn_n8.setOnClickListener(clickListener);btn_n9.setOnClickListener(clickListener);btn_add.setOnClickListener(clickListener);btn_sub.setOnClickListener(clickListener);btn_div.setOnClickListener(clickListener);btn_mix.setOnClickListener(clickListener);btn_res.setOnClickListener(clickListener);btn_dot.setOnClickListener(clickListener);btn_pct.setOnClickListener(clickListener);btn_p.setOnClickListener(clickListener);btn_c.setOnClickListener(clickListener);btn_del.setOnClickListener(clickListener);kk=0;opflag=0;}public View.OnClickListener clickListener = new View.OnClickListener() {@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.button_n0:kk=kk*10+0;break;case R.id.button_n1:kk=kk*10+1;break;case R.id.button_n2:kk=kk*10+2;break;case R.id.button_n3:kk=kk*10+3;break;case R.id.button_n4:kk=kk*10+4;break;case R.id.button_n5:kk=kk*10+5;break;case R.id.button_n6:kk=kk*10+6;break;case R.id.button_n7:kk=kk*10+7;break;case R.id.button_n8:kk=kk*10+8;break;case R.id.button_n9:kk=kk*10+9;break;case R.id.button_c:kk=0;break;case R.id.button_add:kk_add=kk;kk_sub=0;kk=0;opflag=1;break;case R.id.button_sub:kk_add=0;kk_sub=kk;kk=0;opflag=-1;break;case R.id.button_res:kk=(kk+kk_add-kk_sub)*opflag;break;default:break;}txtView.setText(String.valueOf(kk));}};
}

五、实验结果分析:

下图为Android计算器设计图及APP模拟编译图,可实现基本功能:

体会:此次实验我熟悉了Android稍微复杂的逻辑编程,一步步做实验的过程也感受到了理论课上无法感受到的东西。开发过程中遇到的不会的问题在网上也有对应的解决办法,最终将计算器设计出来及成功运行也感受到了Android开发的强大魅力。

(如有侵权,请联系删除!文章中若有错误欢迎在评论区指出!)

Android计算器设计实验报告相关推荐

  1. android常用控件实验报告,ui设计实验报告.doc

    ui设计实验报告 ui设计实验报告 篇一:UI设计实验报告 实验项目四:UI设计 一. 实验目的和要求 1.熟练运用Eclipse软件中的swing设计. 2.掌握UI编写的软件. 3.能都熟练的进行 ...

  2. android音乐播放器实验报告总结,音乐播放器设计实验报告.docx

    音乐播放器设计实验报告.docx 实验报告课程名称数字系统设计实验指导老师成绩_____________实验名称音乐播放器设计实验实验类型设计型一.实验目的和要求(必填)二.实验内容和原理(必填)三. ...

  3. 南邮Android软件设计报告,南京邮电大学软件设计实验报告

    南京邮电大学软件设计实验报告 软件设计报告( 2014 / 2015 学年 第 二 学期)课程名称 软件设计 指导老师 赵江 实习时间 第十八周 学生姓名 学号 ____学院______专业软件设计课 ...

  4. 闹钟Android实验报告,闹钟设计实验报告.doc

    闹钟设计实验报告 闹钟设计实验报告 院系: 计算机与通信学院 专业: 计算机科学与技术 班级: 01154 班 姓名: 伍晨曦 (13号) 指导老师: 杨 华 实验目的: 学会VHDL语言的并发执行的 ...

  5. 20175333曹雅坤实验四《Android程序设计》实验报告

    20175333实验四<Android程序设计>实验报告 一.实验内容及步骤 - Android程序设计-1 Android Stuidio的安装测试: 参考<Java和Androi ...

  6. android对象识别实验报告,Android 3相册实验报告.doc

    Android 3相册实验报告 中原工学院计算机学院 软件平台开发技术大作业 班 级: 软件121 作品名称: 3D相册 姓 名: 辛俊闪 学 号: 201200834101 指导教师: 刘凤华 20 ...

  7. 20155318 《Java程序设计》实验四 (Android程序设计)实验报告

    20155318 <Java程序设计>实验四 (Android程序设计)实验报告 实验内容 基于Android Studio开发简单的Android应用并部署测试; 了解Android.组 ...

  8. Android用户界面的设计方法心得,android界面设计实验总结,.docx

    android界面设计实验总结, 安卓实验报告 班级: 学号: 姓名:xxxxxxxxx 实验一:Activity生命周期的测试 一:实验目的 掌握使用Eclipse开发Android应用开发程序的方 ...

  9. 2019春第二次课程设计实验报告

    2019春第二次课程设计实验报告 一.实验项目名称: 贪吃蛇游戏编写: 二.实验项目功能描述: 这个实验主要是实现游戏的正常运行,实现的目标是对小蛇移动的控制, 同时对小蛇数据的保存,如何实现转弯的效 ...

  10. 2109春第一次课程设计实验报告

    2019春第一次课程设计实验报告 一.实验项目名称: 飞机游戏的编写 二.实验项目功能描述: 这个实验主要是实现游戏的正常运行,实现控制飞机的移动功能,增加其实用度, 同时还实现发射子弹和出现敌机的操 ...

最新文章

  1. Singleton模式
  2. Andriod的Http请求获取Cookie信息并同步保存,使第二次不用登录也可查看个人信息...
  3. JPA中实现双向一对一的关联关系
  4. Ubuntu11.04 3945ABG无线网卡驱动安装
  5. docker镜像导入、导出
  6. C语言的整型溢出问题
  7. java大作业斗地主游戏_Java集合练习:斗地主游戏
  8. python如何叉乘_向量点乘与向量叉乘
  9. 在Ubuntu下搭建Spark群集
  10. 修改Code Blocks默认代码格式
  11. 网络安全管理规章制度
  12. 用python自动办公 麻瓜_(视频教程)下载:麻瓜编程Python商业爬虫学徒计划python自动化办公麻瓜麻瓜编程...
  13. c语言一元多项式求和
  14. 利用Word实现交叉引用或引用尾注添加参考文献图解
  15. Zynga公布2021年第一季度财务业绩
  16. 某电商客户数据价值分析项目
  17. pycharm解决光标变粗,关闭改写模式
  18. MATLAB中cftool多曲线画图
  19. 【嵌入式】STM32实现SPI双机通信的一些细节(2)片选总结
  20. 随机森林算法(RandomForest)实现MNIST手写体数字识别

热门文章

  1. 免费批量修改图片MD5软件 图片处理防和谐软件
  2. 医疗软件测试工作流程
  3. 蓝桥杯题目常用API (JAVA)
  4. 夜间灯光数据dn值_探讨DMSPOLS夜间灯光数据的校正
  5. 支持xp的最高配置? 20210518
  6. linux定义getch函数
  7. 你还发现了CSDN那些变化
  8. javascript电子书下载
  9. linux相关的东东 来自dbanotes
  10. expect+shell脚本实现免密登录