安卓计算器开发实验报告
上海电力学院 嵌入式 W ebOS 应用开发 实验 报告
实验名称:
使用 Android Developer SDK 开发应用程序
专
业:
姓
名:
班
级:
学
号:
一、 作品得运行环境及安卓 SDK 基础操作
SDK A n droi d
D eve lr oper 就是一款在 windows 系统上运行得针对 Android 应用开发得谷歌官方软件(需要 JAVA 环境支持). 1、 导入工程
2、 建立虚拟机
在运行虚拟机就是为保证机器得顺畅运行建议选择分辨率较低得虚拟机,但就是其RAM 最好设为 512MB,因为部分程序如果调用资源过大会导致虚拟机无法运行。
3、 虚拟机 界面
二、 作品介绍 我得应用就是一个计算器。能实现包括小数得加减乘除运算,结果过大会自动用科学记数法表示,另外还有退格跟清屏功能键。
三、 编程以及运行调试 (一)、在 MyDesktop 主界面中添加应用图标
1 、 首先在我得桌面上添加您应用得图标以及文字,双击图标后就可以瞧见对应得代码,可直接在代码中进行修改图片文字得大小颜色等等.
以下就是对应图像图标得代码
图片可以在左侧得选 项中自行进行挑选;
也可以添加自己得图片, 只要将图片放到对应得 文件夹之下在刷新就可 以,但不建议放分辨率 过高图片可能会出现超 出界面得等错误。
(二)、在 res/layout 目录下新建、xml 文件,由于计算器得按钮很多,要在 xml界面中添加排版:
xml 代码首末得
</AbsoluteLayout〉
格式较为自由可以直
接在界面中拖动图标位置以及修改大小,而其她 layout 则更会自动排列,各有优劣。
(三)、在 src/weibo、test、ui 目录下新建、java 文件,计算器得按钮算法等都在此实现。
(三)、声明 工程名 1、在应用中有三处需要声明,首先就是在 AndroidManifest、xml
2、然后就是在MainActivity、java
四、 代码展示 (一)、、xml界面代码
<?xml version= " 1 、 0" encoding= "ut f-8 " ?> 〈LinearLayout xmlns:android= ""
android:layout_width="fill_ par ent "
android:layout_height=” f i l l_parent"
android:orientation=" v er t i c al" 〉
〈TableLayout
android:id=” + id/tab l eL a y out 1 "
android:layout_width= " m a t c h_ pa re nt "
android:layout_height="wrap_c o ntent"
android:collapseColumns= " 4” >
<TableRow
android:id=" +i d/ tab le R ow _e t"
android:layout_width= " fill_ p arent”
android:layout_height="fill _p arent" >
〈EditText
android:id=" + i d /et "
android:layout_width="f i ll_ p a re n t"
android:layout_height= " f i l l_ pare n t "
android:layout_span=”4”
android:focusable=”fals e"
android:gravity=”r i ght "
android:inputType=”t e xt”
android:singleLine="true" 〉
</EditText〉
</TableRow〉
<TableRow
android:id= " +id / ta b leRow 1 "
android:layout_width= " f i ll_pa r ent"
android:layout_height="f i ll_parent” >
<Button
android:id=" + id/ b t_7”
android:layout_width= " 80px"
android:layout_height="8 0 px"
android:text="7 "
/>
<Button
android:id="+ i d/bt _ 8"
android:layout_width="80 p x"
android:layout_height=”80px"
android:text="8” />
〈Button
android:id="+id/ bt_ 9”
android:layout_width=”1px"
android:layout_height=”80px”
android:text=” 9 ” />
<Button
android:id= " +i d /b t_ b a ck"
android:layout_width=”8 0 px"
android:layout_height="80px "
android:text= " ba ck " /〉
</TableRow〉
〈TableRow
android:id=” + id / t able Row2"
android:layout_width=”f i ll_parent"
android:layout_height="fil l _ pa rent "
>
<Button
android:id= "+i d/bt_ 4 ”
android:layout_width=” 8 0p x"
android:layout_height= " 80p x "
android:text=”4 "
/>
<Button
android:id="+id/ b t_5"
android:layout_width="80 p x"
android:layout_height= " 80 p x"
android:text=”5” />
<Button
android:id= " +id/bt_6”
android:layout_width="8 0p x”
android:layout_height= " 80px"
android:text="6" />
<Button
android:id="+id / bt_ d ivide "
android:layout_width="8 0 px"
android:layout_height="80 px "
android:text=” / ” /〉
</TableRow〉
<TableRow
android:id=”+ i d/tabl e R o w3”
android:layout_width="fi l l_par e n t "
android:layout_height="fil l _parent "
〉
〈Button
android:id=”+ i d/bt_1"
android:layout_width=”80p x"
android:layout_height=" 80 px"
android:text="1” />
<Button
android:id=”+i d /bt _2"
android:layout_width=" 8 0p x ”
android:layout_height= "8 0px”
android:text="2 "
/>
<Button
android:id=” + i d / b t_ 3"
android:layout_width=”8 0 px "
android:layout_height= " 80p x "
android:text=" 3"
/〉
〈Button
android:id=”+id/b t _multi p ly"
android:layout_width=” 8 0p x ”
android:layout_height="80px"
android:text="*” />
</TableRow>
<TableRow
android:id= " +id/ ta bleR o w4”
android:layout_width="fill_parent "
android:layout_height=”fill_p a rent” 〉
〈Button
android:id=”+ i d/bt_0 "
android:layout_width=”50px”
android:layout_height=”80px"
android:text="0" /〉
<Button
android:id=”+i d / b t_poi n t"
android:layout_width=” 5 0px "
android:layout_height=” 8 0p x "
android:text=" 、"
/>
<Button
android:id=” + id/bt_ a dd”
android:layout_width= "5 0px"
android:layout_height=”80px"
android:text="+" /〉
<Button
android:id=” +i d/ b t_sub "
android:layout_width=” 50 px "
android:layout_height= " 80 px"
android:text=”—" /〉
</TableRow>
<TableRow
android:id= " +id/ta bl e R ow4"
android:layout_width=" f i ll _p a ren t"
android:layout_height=”fi l l_ p are n t” >
<Button
android:id=” + id/ b t_equal "
android:layout_width=" fi ll_ p ar e n t ”
android:layout_height=” f ill_ p a re nt”
android:layout_span="3 "
android:text="=" />
<Button
android:id=”+i d /b t _cle a r "
android:layout_width=”50 p x "
android:layout_height=”80px"
android:text= " clea r ” />
</TableRow〉
</TableLayout> </LinearLayout> (二)、、java功能代码
package weibo、test、ui; import java、util、ArrayList; import java、util、List; import android、app、Activity; import android、os、Bundle; import android、view、View; import android、view、View、OnClickListener; import android、widget、Button; import android、widget、EditText; import android、widget、Toast; import weibo、lixiaodaoaaa、ui、R; import android、app、Activity; import android、content、Intent; import android、content、pm、PackageManager; import android、os、Bundle; import android、view、KeyEvent; import android、view、View; import android、view、View、OnClickListener; import android、widget、Button; import android、widget、ListView; import 、zsy、flipper、AppInfUtil; import 、zsy、flipper、AppInfo; public class fffActivity extends Activity
{
private Button bt_1;
private Button bt_2;
;3_tb nottuB etavirpﻩ private Button bt_4;
;5_tb nottuB etavirpﻩ private Button bt_6;
;7_tb nottuB etavirpﻩ private Button bt_8;
private Button bt_9;
private Button bt_0;
private Button bt_add;
减 // ;bus_tb nottuB etavirpﻩ private Button bt_multiply; // 乘
private Button bt_divide; // 除
;kcab_tb nottuB etavirpﻩ 于等 // ;lauqe_tb nottuB etavirpﻩ private Button bt_point; // 点
除清 // ;raelc_tb nottuB etavirpﻩ private EditText et_play; // 显示
private String str_oper = "+”; // 运算符
private StringBuffer str_display = new StringBuffer();; // 显示
示显果结 // ;tluser_rts gnirtS etavirpﻩ ;1mun elbuod etavirpﻩ ;2mun elbuod etavirpﻩ private boolean flag = true; // 小数点个数开关控制;
制控关开符算运 // ;vid_b ,lum_b ,bus_b naeloob etavirpﻩ Override
public void onCreate(Bundle savedInstanceState)
{
ﻩ super、onCreate(savedInstanceState);
setContentView(R、layout、activity_fff);
;)0_tb、di、R(dIyBweiVdnif )nottuB( = 0_tbﻩ ;)1_tb、di、R(dIyBweiVdnif )nottuB( = 1_tbﻩﻩ
bt_2 = (Button)
findViewById(R、id、bt_2);
ﻩ bt_3 = (Button) findViewById(R、id、bt_3);
bt_4 = (Button)
findViewById(R、id、bt_4);
ﻩ bt_5 = (Button) findViewById(R、id、bt_5);
bt_6 = (Button)
findViewById(R、id、bt_6);
bt_7 = (Button)
findViewById(R、id、bt_7);
;)8_tb、di、R(dIyBweiVdnif )nottuB( = 8_tbﻩ
bt_9 = (Button)
findViewById(R、id、bt_9);
bt_add = (Button)
findViewById(R、id、bt_add);
;)bus_tb、di、R(dIyBweiVdnif )nottuB( = bus_tbﻩﻩ
;)ylpitlum_tb、di、R(dIyBweiVdnif )nottuB( = ylpitlum_tbﻩ
;)edivid_tb、di、R(dIyBweiVdnif )nottuB( = edivid_tbﻩ
bt_back = (Button) findViewById(R、id、bt_back);
ﻩ bt_equal = (Button)
findViewById(R、id、bt_equal);
;)tniop_tb、di、R(dIyBweiVdnif )nottuB( = tniop_tbﻩ ﻩ bt_clear = (Button) findViewById(R、id、bt_clear);
ﻩ et_play = (EditText)
findViewById(R、id、et);
;)”0"(txeTtes、yalp_teﻩﻩ ﻩ bt_0、setOnClickListener(new OnClickListener()
{ﻩ
edirrevOﻩﻩ
)v weiV(kcilCno diov cilbupﻩ {ﻩﻩﻩ
str_display、append("0”);
ﻩ
;))(gnirtSot、yalpsid_rts(txeTtes、yalp_teﻩﻩ
ﻩ }
ﻩ });
)(renetsiLkcilCnO wen(renetsiLkcilCnOtes、1_tbﻩ
{ﻩ
Override
)v weiV(kcilCno diov cilbupﻩﻩ { ﻩﻩ ﻩ;)"1"(dneppa、yalpsid_rtsﻩ ﻩ;))(gnirtSot、yalpsid_rts(txeTtes、yalp_teﻩ
}
;)}ﻩﻩ ﻩ bt_2、setOnClickListener(new OnClickListener()
ﻩ {
ﻩ
Override
)v weiV(kcilCno diov cilbupﻩﻩ
{ﻩﻩ
;)"2"(dneppa、yalpsid_rtsﻩﻩ;))(gnirtSot、yalpsid_rts(txeTtes、yalp_teﻩﻩ ﻩ
}
});
)(renetsiLkcilCnO wen(renetsiLkcilCnOtes、3_tbﻩﻩ
{ﻩ
edirrevOﻩ
public void onClick(View v)
{ﻩﻩ ﻩ
;)"3"(dneppa、yalpsid_rtsﻩ ﻩ
et_play、setText(str_display、toString());
ﻩ
}
ﻩ });
)(renetsiLkcilCnO wen(renetsiLkcilCnOtes、4_tbﻩ
{ﻩ
edirrevOﻩﻩ
)v weiV(kcilCno diov cilbupﻩﻩ {ﻩﻩﻩ ﻩ
;)”4"(dneppa、yalpsid_rtsﻩ ﻩ
;))(gnirtSot、yalpsid_rts(txeTtes、yalp_teﻩ
}
ﻩ });
)(renetsiLkcilCnO wen(renetsiLkcilCnOtes、5_tbﻩﻩ ﻩ {
ﻩ
Override
public void onClick(View v)
ﻩ {
ﻩ
;)"5"(dneppa、yalpsid_rtsﻩ
;))(gnirtSot、yalpsid_rts(txeTtes、yalp_teﻩﻩ
}
});
bt_6、setOnClickListener(new OnClickListener()
{
edirrevOﻩ ﻩ
public void onClick(View v)
{
ﻩ str_display、append("6");
ﻩ
ﻩ et_play、setText(str_display、toString());
}ﻩﻩ ;)}ﻩﻩ ﻩ bt_7、setOnClickListener(new OnClickListener()
ﻩ {
edirrevOﻩﻩ
)v weiV(kcilCno diov cilbupﻩﻩ ﻩ
{
;)"7”(dneppa、yalpsid_rtsﻩﻩ
ﻩ et_play、setText(str_display、toString());
ﻩ }
;)}ﻩﻩ )(renetsiLkcilCnO wen(renetsiLkcilCnOtes、8_tbﻩﻩ {ﻩﻩﻩedirrevOﻩ
)v weiV(kcilCno diov cilbupﻩﻩ ﻩ
{ﻩﻩ
;)"8"(dneppa、yalpsid_rtsﻩﻩ
;))(gnirtSot、yalpsid_rts(txeTtes、yalp_teﻩﻩ
}ﻩﻩ
});
)(renetsiLkcilCnO wen(renetsiLkcilCnOtes、9_tbﻩﻩ
{
ﻩ
edirrevOﻩﻩ)v weiV(kcilCno diov cilbupﻩ
{
ﻩ
str_display、append("9”);
et_play、setText(str_display、toString());
}
});
bt_point、setOnClickListener(new OnClickListener()
{ ﻩedirrevOﻩﻩ)v weiV(kcilCno diov cilbupﻩ
{
ﻩ
if (flag)
ﻩ
{ﻩﻩ ﻩ
ﻩ str_display、append("、”);
ﻩﻩ
;eslaf = galfﻩ ﻩ
}ﻩﻩ
}ﻩ
;)}ﻩ
)(renetsiLkcilCnO wen(renetsiLkcilCnOtes、kcab_tbﻩ {ﻩﻩ ﻩ
Override
)v weiV(kcilCno diov cilbupﻩ
{
ﻩ
)0 =! )(htgnel、yalpsid_rts( fiﻩﻩ
{
ﻩ
;)1 — )(htgnel、yalpsid_rts(tArahCeteled、yalpsid_rtsﻩ
ﻩ et_play、setText(str_display、toString());
} ﻩﻩﻩ } ﻩﻩ
});
)(renetsiLkcilCnO wen(renetsiLkcilCnOtes、dda_tbﻩﻩ {ﻩﻩﻩedirrevOﻩ
)v weiV(kcilCno diov cilbupﻩﻩ
{
ﻩ;"+” = repo_rtsﻩ ﻩ))"" == )(gnirtSot、yalpsid_rts(!( fiﻩ
{ﻩﻩ ﻩﻩﻩﻩ num1 += Double、parseDouble(str_display、toString());
;)"”(reffuBgnirtS wen = yalpsid_rtsﻩﻩ } ﻩﻩﻩ
if (!(str_result == null))
ﻩ
{ﻩﻩ
ﻩﻩ
;)tluser_rts(elbuoDesrap、elbuoD = 1munﻩﻩﻩﻩ;llun = tluser_rtsﻩ }ﻩ ﻩﻩﻩ
;))1mun(fOeulav、gnirtS(txeTtes、yalp_teﻩﻩ ﻩ;eurt = galfﻩ ﻩ
}ﻩ
;)}ﻩ
bt_sub、setOnClickListener(new OnClickListener()
{
edirrevOﻩﻩ
)v weiV(kcilCno diov cilbupﻩﻩ ﻩ
{
ﻩ;”-" = repo_rtsﻩ ﻩ
))"" == )(gnirtSot、yalpsid_rts(! && bus_b!( fiﻩ
ﻩ
{
ﻩ
ﻩ num1 = Double、parseDouble(str_display、toString());
ﻩﻩ
;))1mun(fOeulav、gnirtS(txeTtes、yalp_teﻩ
;)”"(reffuBgnirtS wen = yalpsid_rtsﻩﻩ
ﻩ
b_sub = true;
ﻩﻩ } else
{
ﻩ ﻩ))"" == )(gnirtSot、yalpsid_rts(!( fiﻩ
ﻩ
{
ﻩ
gnirtSot、yalpsid_rts(elbuoDesrap、elbuoD =- 1munﻩﻩ()); ﻩﻩﻩ
;)""(reffuBgnirtS wen = yalpsid_rtsﻩﻩ
}ﻩﻩ
ﻩ
))llun == tluser_rts(!( fiﻩﻩ ﻩ
{ﻩﻩ ﻩ
ﻩ
;)tluser_rts(elbuoDesrap、elbuoD = 1munﻩﻩ ﻩ ﻩ;llun = tluser_rtsﻩ
ﻩ
ﻩ }
et_play、setText(String、valueOf(num1));
}ﻩﻩﻩﻩ
;eurt = galfﻩ } ﻩﻩ ﻩ });
ﻩ bt_multiply、setOnClickListener(new OnClickListener()
ﻩ {
ﻩ
Override ﻩ)v weiV(kcilCno diov cilbupﻩ ﻩ
{
ﻩ;”*" = repo_rtsﻩ ﻩ
))”" == )(gnirtSot、yalpsid_rts(!
&& lum_b!( fiﻩ
{ﻩﻩﻩ ﻩ
;))(gnirtSot、yalpsid_rts(elbuoDesrap、elbuoD = 1munﻩ ﻩ
;))1mun(fOeulav、gnirtS(txeTtes、yalp_teﻩﻩ ﻩ
;)""(reffuBgnirtS wen = yalpsid_rtsﻩﻩ ﻩ
;eurt = lum_bﻩﻩ
ﻩﻩ } else
ﻩ
{
ﻩﻩﻩﻩ if (!(str_display、toString() == ””))
{ﻩﻩﻩﻩﻩ ﻩ
ﻩ
num1 *= Double、parseDouble(str_display、toString());
ﻩﻩﻩ
;)""(reffuBgnirtS wen = yalpsid_rtsﻩ
}ﻩﻩ ﻩ))llun == tluser_rts(!( fiﻩ {ﻩ ﻩﻩﻩ
ﻩ;)tluser_rts(elbuoDesrap、elbuoD = 1munﻩ ﻩ
str_result = null;
ﻩ
}ﻩ
ﻩ
;))1mun(fOeulav、gnirtS(txeTtes、yalp_teﻩ }ﻩ ﻩﻩ;eurt = galfﻩﻩ
}ﻩﻩ ;)}ﻩﻩ )(renetsiLkcilCnO wen(renetsiLkcilCnOtes、edivid_tbﻩﻩ
{ﻩ ﻩ
Override
)v weiV(kcilCno diov cilbupﻩ
ﻩ {
ﻩ
;"/” = repo_rtsﻩﻩ ﻩ
))"" == )(gnirtSot、yalpsid_rts(! && vid_b!( fiﻩﻩ ﻩ
{
num1 = Double、parseDouble(str_display、toString());
ﻩ
et_play、setText(String、valueOf(num1));
ﻩ
str_display = new StringBuffer("”);
ﻩ
;eurt = vid_bﻩ }ﻩ
esleﻩﻩ
{ ﻩﻩ
ﻩ
if (!(str_display、toString()
== ""))
ﻩ
{ﻩ ﻩ
ﻩ)0 == ))(gnirtSot、yalpsid_rts(elbuoDesrap、elbuoD( fiﻩ
ﻩ
{ﻩﻩ
ﻩﻩﻩﻩ Toast、makeText(fffActivity、this,
ﻩ
" ;)(wohs、)GNOL_HTGNEL、tsaoT ,"!0 为能不数除ﻩ
ﻩﻩ
} else
ﻩﻩ
ﻩ {
ﻩﻩﻩ
;))(gnirtSot、yalpsid_rts(elbuoDesrap、elbuoD =/ 1munﻩ ﻩ ﻩﻩ
str_display = new StringBuffer(”");
} ﻩﻩﻩ
}ﻩ ﻩﻩ
ﻩﻩ
if (!(str_result == null))
ﻩ
{
ﻩ
ﻩ
ﻩ num1 = Double、parseDouble(str_result);
ﻩﻩﻩ;llun = tluser_rtsﻩ ﻩ
ﻩ }
;))1mun(fOeulav、gnirtS(txeTtes、yalp_teﻩ
}ﻩﻩ ﻩ;eurt = galfﻩ }ﻩﻩﻩ
});
ﻩ bt_clear、setOnClickListener(new OnClickListener()
{ ﻩedirrevOﻩﻩ)v weiV(kcilCno diov cilbupﻩ {ﻩﻩﻩ ﻩ
;”+" = repo_rtsﻩ
ﻩ str_display = new StringBuffer("");
str_result = null;
ﻩ
num1 = 0;
ﻩ
num2 = 0;
;eurt = galfﻩﻩ ﻩ;eslaf = bus_bﻩ ﻩ
b_mul = false;
ﻩ
;eslaf = vid_bﻩﻩ ﻩ;)"0"(txeTtes、yalp_teﻩ }ﻩﻩﻩ ;)}ﻩﻩ
bt_equal、setOnClickListener(new OnClickListener()
{ﻩ
edirrevOﻩﻩ
)v weiV(kcilCno diov cilbupﻩ {ﻩﻩﻩ))”+"(slauqe、repo_rts( fiﻩﻩ
ﻩ
{
ﻩ
;))(gnirtSot、yalpsid_rts(elbuoDesrap、elbuoD = 2munﻩﻩ
ﻩ
;))2mun + 1mun((fOeulav、gnirtS = tluser_rtsﻩ ﻩ
et_play、setText(str_result);
ﻩ
;)”"(reffuBgnirtS wen = yalpsid_rtsﻩﻩ
}ﻩ
ﻩ
if (str_oper、equals(”—"))
{ﻩﻩﻩﻩ
ﻩ
;))(gnirtSot、yalpsid_rts(elbuoDesrap、elbuoD = 2munﻩﻩﻩ
;))2mun - 1mun((fOeulav、gnirtS = tluser_rtsﻩﻩ ﻩ ﻩﻩ et_play、setText(str_result);
ﻩ
str_display = new StringBuffer(”");
}ﻩﻩﻩﻩ
))"*”(slauqe、repo_rts( fiﻩ
{ﻩ
ﻩﻩ
;))(gnirtSot、yalpsid_rts(elbuoDesrap、elbuoD = 2munﻩ ﻩ
;))2mun * 1mun((fOeulav、gnirtS = tluser_rtsﻩ ﻩ
ﻩ
;)tluser_rts(txeTtes、yalp_teﻩ
ﻩ
;)""(reffuBgnirtS wen = yalpsid_rtsﻩ
ﻩ }
))"/”(slauqe、repo_rts( fiﻩﻩ ﻩ
{ﻩﻩ
;))(gnirtSot、yalpsid_rts(elbuoDesrap、elbuoD = 2munﻩﻩ
ﻩﻩﻩ if (!(num2 == 0))
ﻩﻩﻩﻩ {
ﻩ
ﻩ;))2mun / 1mun((fOeulav、gnirtS = tluser_rtsﻩ ﻩ
ﻩ
et_play、setText(str_result);
ﻩ
} else
{ ﻩﻩﻩ ﻩ
ﻩ
Toast、makeText(fffActivity、this,
ﻩ
"ﻩ;)(wohs、)GNOL_HTGNEL、tsaoT ,"!0 为能不数除ﻩ ﻩ
}ﻩﻩﻩ ﻩ
ﻩ
str_display = new StringBuffer("");
ﻩ
}
}ﻩﻩﻩ ﻩ });
}ﻩ} 五、 实验小结 通过此次Android 应用得开发,使我学会了很多在其她理论课上所无法学到得东西。所谓道可道,非常道,开发过程中得领悟难以用言语来形容;不过,调试过程中面对一大堆红叉叉得耐心与成功运行后所获得得成就感将会成为我们人生中宝贵得财富。