简单的android计算器Word文件下载.docx
《简单的android计算器Word文件下载.docx》由会员分享,可在线阅读,更多相关《简单的android计算器Word文件下载.docx(19页珍藏版)》请在冰点文库上搜索。
判断是否满足
,若满足则迭代停止;
若不满足,则执行步骤1.
基于android的简单计算器
1、界面截图
2、布局文件
总体是一个LinearLayout布局,每一行的按钮也使用了此布局。
当然,每一行也可以在TableLayout里使用TableRow。
虽然使用其他布局可能会简洁点,不过我个人喜欢使用LinearLayout布局。
<
LinearLayoutxmlns:
android="
xmlns:
tools="
android:
orientation="
vertical"
layout_width="
match_parent"
layout_height="
>
<
EditText
id="
@+id/et_input"
fill_parent"
wrap_content"
maxLength="
25"
textColor="
#00ff00"
cursorVisible="
false"
gravity="
right"
text="
0"
/>
<
!
--android:
输入框中光标不可见-->
<
输入内容从右边开始显示-->
LinearLayout
paddingRight="
5dp"
paddingLeft="
horizontal"
>
Button
@+id/button_bk"
0dp"
BK"
layout_weight="
1"
@+id/button_ce"
CE"
@+id/button_c"
C"
/LinearLayout>
@+id/button_mc"
MC"
@+id/button_7"
7"
@+id/button_8"
8"
@+id/button_9"
9"
@+id/button_div"
/"
@+id/button_mr"
MR"
@+id/button_4"
4"
@+id/button_5"
5"
@+id/button_6"
6"
@+id/button_multi"
*"
@+id/button_ms"
MS"
@+id/button_1"
@+id/button_2"
2"
@+id/button_3"
3"
@+id/button_minus"
-"
@+id/button_sign"
+/-"
@+id/button_equal"
="
@+id/button_0"
@+id/button_dot"
."
@+id/button_plus"
+"
TextView
@+id/tv_tmp"
@color/pink"
Memory="
/>
@+id/tv_mem"
@color/sliver"
--显示记忆数据-->
布局文件中在TextView和EditText中使用的Color要在strings.xml中定义。
resources>
stringname="
app_name"
Calculator<
/string>
hello_world"
Helloworld!
menu_settings"
Settings<
title_activity_my_calculator"
MyCalculator<
<
colorname="
pink"
#ffc0cb<
/color>
sliver"
#c0c0c0<
/resources>
3、java代码:
各种组件的使用在代码里都有明确说明,在此不再说明。
packagecom.example.calculator;
importandroid.os.Bundle;
importandroid.app.Activity;
importandroid.view.Menu;
importandroid.view.View;
importandroid.view.View.OnClickListener;
importandroid.widget.Button;
importandroid.widget.EditText;
importandroid.widget.TextView;
publicclassMyCalculatorextendsActivity{
doubleop1=0,op2=0;
//记录两次输入的值
charoperation;
//记录运算符
EditTextinput;
//输入文本框
booleanisInputChar=false;
//判断是否输入了运算符
TextViewmemory;
//记忆文本
Buttonplus,minus,multi,divide,equal;
//运算符
Buttonback,clean,cleanAll;
//文本数据处理(回退、本次输
//入清零、所有输入清零)
Buttonmclean,mread,msave;
//数据记忆(清除、读取、保存)
Button[]btn=newButton[10];
//数字
Buttondot;
//点
Buttonsign;
//正负数转换
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my_calculator);
input=(EditText)findViewById(R.id.et_input);
memory=(TextView)findViewById(R.id.tv_mem);
//运算符
plus=(Button)findViewById(R.id.button_plus);
minus=(Button)findViewById(R.id.button_minus);
multi=(Button)findViewById(R.id.button_multi);
divide=(Button)findViewById(R.id.button_div);
equal=(Button)findViewById(R.id.button_equal);
//设置点击监听
plus.setOnClickListener(listener);
minus.setOnClickListener(listener);
multi.setOnClickListener(listener);
divide.setOnClickListener(listener);
equal.setOnClickListener(listener);
//记忆
back=(Button)findViewById(R.id.button_bk);
clean=(Button)findViewById(R.id.button_ce);
cleanAll=(Button)findViewById(R.id.button_c);
back.setOnClickListener(listener);
clean.setOnClickListener(listener);
cleanAll.setOnClickListener(listener);
//数据记忆
mclean=(Button)findViewById(R.id.button_mc);
mread=(Button)findViewById(R.id.button_mr);
msave=(Button)findViewById(R.id.button_ms);
mclean.setOnClickListener(listener);
mread.setOnClickListener(listener);
msave.setOnClickListener(listener);
//数字
btn[0]=(Button)findViewById(R.id.button_0);
btn[1]=(Button)findViewById(R.id.button_1);
btn[2]=(Button)findViewById(R.id.button_2);
btn[3]=(Button)findViewById(R.id.button_3);
btn[4]=(Button)findViewById(R.id.button_4);
btn[5]=(Button)findViewById(R.id.button_5);
btn[6]=(Button)findViewById(R.id.button_6);
btn[7]=(Button)findViewById(R.id.button_7);
btn[8]=(Button)findViewById(R.id.button_8);
btn[9]=(Button)findViewById(R.id.button_9);
for(inti=0;
i<
10;
i++){
btn[i].setOnClickListener(listener);
}
//点
dot=(Button)findViewById(R.id.button_dot);
dot.setOnClickListener(listener);
//正负数转换
sign=(Button)findViewById(R.id.button_sign);
sign.setOnClickListener(listener);
//按钮监听
privateOnClickListenerlistener=newOnClickListener(){
publicvoidonClick(Viewv){
//TODOAuto-generatedmethodstub
//获取输入数据
StringinputText=input.getText().toString();
//对输入数据进行判断
switch(v.getId()){
caseR.id.button_bk:
//后退
if(inputText.length()>
1)
input.setText(inputText.substring(0,inputText.length()-1));
elseif(inputText.length()==1){
input.setText("
);
}
if(input.getText().toString().compareTo("
)==0){//去除负号
break;
caseR.id.button_ce:
//此次输入清零
input.setText("
if(isInputChar)
op2=0;
else
op1=0;
caseR.id.button_c:
//全部清零,重新计算
op1=0;
op2=0;
isInputChar=false;
caseR.id.button_mc:
//清空记忆数据
memory.setText("