安卓计算器开发实验报告.docx
《安卓计算器开发实验报告.docx》由会员分享,可在线阅读,更多相关《安卓计算器开发实验报告.docx(21页珍藏版)》请在冰豆网上搜索。
安卓计算器开发实验报告
上海电力学院
嵌入式WebOS应用开发
实验报告
实验名称:
使用AndroidDeveloperSDK开发应用程序
专业:
姓名:
班级:
学号:
一、作品的运行环境及安卓SDK基础操作
SDKAndroidDeveloper是一款在windows系统上运行的针对Android应用开发的谷歌官方软件(需要JAVA环境支持)。
1、导入工程
2、建立虚拟机
在运行虚拟机是为保证机器的顺畅运行建议选择分辨率较低的虚拟机,但是其RAM最好设为512MB,因为部分程序如果调用资源过大会导致虚拟机无法运行。
3、虚拟机界面
二、作品介绍
我的应用是一个计算器。
能实现包括小数的加减乘除运算,结果过大会自动用科学记数法表示,另外还有退格跟清屏功能键。
三、编程以及运行调试
(一)、在MyDesktop主界面中添加应用图标
1.首先在我的桌面上添加你应用的图标以及文字,双击图标后就可以看见对应的代码,可直接在代码中进行修改图片文字的大小颜色等等。
以下是对应图像图标的代码
图片可以在左侧的选
项中自行进行挑选;
也可以添加自己的图片,
只要将图片放到对应的
文件夹之下在刷新就可
以,但不建议放分辨率
过高图片可能会出现超
出界面的等错误。
(二)、在res/layout目录下新建.xml文件,由于计算器的按钮很多,要在xml界面中添加排版:
xml代码首末的格式较为自由可以直接在界面中拖动图标位置以及修改大小,而其他layout则更会自动排列,各有优劣。
(三)、在src/目录下新建.java文件,计算器的按钮算法等都在此实现。
(三)、声明工程名
1、在应用中有三处需要声明,首先是在
2、然后是在
四、代码展示
(一)、.xml界面代码
android=""
android:
layout_width="fill_parent"
android:
layout_height="fill_parent"
android:
orientation="vertical">
android:
id="@+id/tableLayout1"
android:
layout_width="match_parent"
android:
layout_height="wrap_content"
android:
collapseColumns="4">
android:
id="@+id/tableRow_et"
android:
layout_width="fill_parent"
android:
layout_height="fill_parent">
android:
id="@+id/et"
android:
layout_width="fill_parent"
android:
layout_height="fill_parent"
android:
layout_span="4"
android:
focusable="false"
android:
gravity="right"
android:
inputType="text"
android:
singleLine="true">
android:
id="@+id/tableRow1"
android:
layout_width="fill_parent"
android:
layout_height="fill_parent">
android:
id="@+id/tableRow2"
android:
layout_width="fill_parent"
android:
layout_height="fill_parent">
android:
id="@+id/bt_4"
android:
layout_width="80px"
android:
layout_height="80px"
android:
text="4"/>
android:
id="@+id/bt_5"
android:
layout_width="80px"
android:
layout_height="80px"
android:
text="5"/>
android:
id="@+id/bt_6"
android:
layout_width="80px"
android:
layout_height="80px"
android:
text="6"/>
android:
id="@+id/bt_divide"
android:
layout_width="80px"
android:
layout_height="80px"
android:
text="/"/>
android:
id="@+id/tableRow3"
android:
layout_width="fill_parent"
android:
layout_height="fill_parent">
android:
id="@+id/bt_1"
android:
layout_width="80px"
android:
layout_height="80px"
android:
text="1"/>
android:
id="@+id/bt_2"
android:
layout_width="80px"
android:
layout_height="80px"
android:
text="2"/>
android:
id="@+id/bt_3"
android:
layout_width="80px"
android:
layout_height="80px"
android:
text="3"/>
android:
id="@+id/bt_multiply"
android:
layout_width="80px"
android:
layout_height="80px"
android:
text="*"/>
android:
id="@+id/tableRow4"
android:
layout_width="fill_parent"
android:
layout_height="fill_parent">
android:
id="@+id/bt_0"
android:
layout_width="50px"
android:
layout_height="80px"
android:
text="0"/>
android:
id="@+id/bt_point"
android:
layout_width="50px"
android:
layout_height="80px"
android:
text="."/>
android:
id="@+id/bt_add"
android:
layout_width="50px"
android:
layout_height="80px"
android:
text="+"/>
android:
id="@+id/bt_sub"
android:
layout_width="50px"
android:
layout_height="80px"
android:
text="-"/>
android:
id="@+id/tableRow4"
android:
layout_width="fill_parent"
android:
layout_height="fill_parent">
android:
id="@+id/bt_equal"
android:
layout_width="fill_parent"
android:
layout_height="fill_parent"
android:
layout_span="3"
android:
text="="/>
android:
id="@+id/bt_clear"
android:
layout_width="50px"
android:
layout_height="80px"
android:
text="clear"/>
(二)、.java功能代码
packageclassfffActivityextendsActivity
{
privateButtonbt_1;
privateButtonbt_2;
privateButtonbt_3;
privateButtonbt_4;
privateButtonbt_5;
privateButtonbt_6;
privateButtonbt_7;
privateButtonbt_8;
privateButtonbt_9;
privateButtonbt_0;
privateButtonbt_add;
privateButtonbt_sub;;
flag=false;
}
}
});
(newOnClickListener()
{
@Override
publicvoidonClick(Viewv)
{
if()!
=0)
{
()-1);
());
}
}
});
(newOnClickListener()
{
@Override
publicvoidonClick(Viewv)
{
str_oper="+";
if(!
()==""))
{
num1+=());
str_display=newStringBuffer("");
}
if(!
(str_result==null))
{
num1=(str_result);
str_result=null;
}
(num1));
flag=true;
}
});
(newOnClickListener()
{
@Override
publicvoidonClick(Viewv)
{
str_oper="-";
if(!
b_sub&&!
()==""))
{
num1=());
(num1));
str_display=newStringBuffer("");
b_sub=true;
}else
{
if(!
()==""))
{
num1-=());
str_display=newStringBuffer("");
}
if(!
(str_result==null))
{
num1=(str_result);
str_result=null;
}
(num1));
}
flag=true;
}
});
(newOnClickListener()
{
@Override
publicvoidonClick(Viewv)
{
str_oper="*";
if(!
b_mul&&!
()==""))
{
num1=());
(num1));
str_display=newStringBuffer("");
b_mul=true;
}else
{
if(!
()==""))
{
num1*=());
str_display=newStringBuffer("");
}
if(!
(str_result==null))
{
num1=(str_result);
str_result=null;
}
(num1));
}
flag=true;
}
});
(newOnClickListener()
{
@Override
publicvoidonClick(Viewv)
{
str_oper="/";
if(!
b_div&&!
()==""))
{
num1=());
(num1));
str_display=newStringBuffer("");
b_div=true;
}else
{
if(!
()==""))
{
if())==0)
{
"除数不能为0!
",.show();
}else
{
num1/=());
str_display=newStringBuffer("");
}
}
if(!
(str_result==null))
{
num1=(str_result);
str_result=null;
}
(num1));
}
flag=true;
}
});
(newOnClickListener()
{
@Override
publicvoidonClick(Viewv)
{
str_oper="+";
str_display=newStringBuffer("");
str_result=null;
num1=0;
num2=0;
flag=true;
b_sub=false;
b_mul=false;
b_div=false;
("0");
}
});
(newOnClickListener()
{
@Override
publicvoidonClick(Viewv)
{
if("+"))
{
num2=());
str_result=((num1+num2));
(str_result);
str_display=newStringBuffer("");
}
if("-"))
{
num2=());
str_result=((num1-num2));
(str_result);
str_display=newStringBuffer("");
}
if("*"))
{
num2=());
str_result=((num1*num2));
(str_result);
str_display=newStringBuffer("");
}
if("/"))
{
num2=());
if(!
(num2==0))
{
str_result=((num1/num2));
(str_result);
}else
{
"除数不能为0!
",.show();
}
str_display=newStringBuffer("");
}
}
});
}
}
五、实验小结
通过此次Android应用的开发,使我学会了很多在其他理论课上所无法学到的东西。
所谓道可道,非常道,开发过程中的领悟难以用言语来形容;不过,调试过程中面对一大堆红叉叉的耐心和成功运行后所获得的成就感将会成为我们人生中宝贵的财富。