一、实验目的:
熟悉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;
@Override
protected 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() {
@Override
public 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开发的强大魅力。 文章来源:https://www.toymoban.com/news/detail-485811.html
(如有侵权,请联系删除!文章中若有错误欢迎在评论区指出!)文章来源地址https://www.toymoban.com/news/detail-485811.html
到了这里,关于Android计算器设计实验报告的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!