简单的android计算器.doc
《简单的android计算器.doc》由会员分享,可在线阅读,更多相关《简单的android计算器.doc(14页珍藏版)》请在咨信网上搜索。
个人收集整理 勿做商业用途 核心算法步骤如下: 输入:传感矩阵,采样向量,稀疏度; 输出:的-稀疏逼近; 初始化:残差,索引集 循环执行步骤1—5: 步骤一:找出残差与传感矩阵的列积中最大值所对应的的脚注,即 步骤2:更新索引集,记录找到的传感矩阵中的重建原子集合 步骤3:由最小二乘法得到 步骤4:更新残差 步骤5:判断是否满足,若满足则迭代停止;若不满足,则执行步骤1. 基于android的简单计算器 1、 界面截图 2、 布局文件 总体是一个LinearLayout布局,每一行的按钮也使用了此布局.当然,每一行也可以在TableLayout里使用TableRow。虽然使用其他布局可能会简洁点,不过我个人喜欢使用LinearLayout布局。 <LinearLayout xmlns:android="http://schemas.android。com/apk/res/android" xmlns:tools="http://schemas。 android:orientation=”vertical" android:layout_width=”match_parent" android:layout_height=”match_parent" 〉 〈EditText android:id="@+id/et_input" android:layout_width=”fill_parent" android:layout_height="wrap_content" android:maxLength=”25” android:textColor=”#00ff00” android:cursorVisible=”false" android:gravity="right” android:text="0” /> 〈!—- android:cursorVisible="false" 输入框中光标不可见 ——〉 <!—— android:gravity=”right" 输入内容从右边开始显示 —-> 〈LinearLayout android:layout_width="fill_parent" android:layout_height=”wrap_content” android:paddingRight=”5dp" android:paddingLeft="5dp" android:orientation=”horizontal”〉 <Button android:id=”@+id/button_bk" android:layout_width=”0dp” android:layout_height="wrap_content" android:text="BK" android:layout_weight=”1" /〉 <Button android:id="@+id/button_ce” android:layout_width="0dp" android:layout_height=”wrap_content” android:text="CE" android:layout_weight=”1” /> 〈Button android:id="@+id/button_c" android:layout_width="0dp" android:layout_height="wrap_content" android:text=”C” android:layout_weight=”1” /〉 〈/LinearLayout〉 <LinearLayout android:layout_width=”fill_parent” android:layout_height=”wrap_content" android:paddingRight="5dp” android:paddingLeft=”5dp” android:orientation="horizontal"> 〈Button android:id="@+id/button_mc” android:layout_width="0dp” android:layout_height="wrap_content" android:text="MC" android:layout_weight=”1" /〉 〈Button android:id="@+id/button_7” android:layout_width="0dp” android:layout_height="wrap_content" android:text=”7" android:layout_weight=”1" /〉 〈Button android:id="@+id/button_8" android:layout_width=”0dp" android:layout_height=”wrap_content" android:text="8” android:layout_weight="1" /> <Button android:id="@+id/button_9" android:layout_width="0dp” android:layout_height=”wrap_content” android:text="9” android:layout_weight=”1" /〉 〈Button android:id=”@+id/button_div” android:layout_width=”0dp" android:layout_height="wrap_content" android:text=”/” android:layout_weight=”1" /〉 </LinearLayout〉 〈LinearLayout android:layout_width="fill_parent” android:layout_height="wrap_content" android:paddingRight="5dp” android:paddingLeft=”5dp" android:orientation="horizontal”〉 〈Button android:id="@+id/button_mr" android:layout_width=”0dp" android:layout_height=”wrap_content" android:text=”MR" android:layout_weight=”1” /〉 <Button android:id="@+id/button_4” android:layout_width=”0dp" android:layout_height=”wrap_content” android:text="4" android:layout_weight="1" /> <Button android:id="@+id/button_5" android:layout_width="0dp” android:layout_height="wrap_content” android:text=”5" android:layout_weight=”1” /> 〈Button android:id="@+id/button_6" android:layout_width=”0dp" android:layout_height=”wrap_content” android:text=”6" android:layout_weight=”1" /> <Button android:id="@+id/button_multi" android:layout_width=”0dp” android:layout_height=”wrap_content” android:text="*" android:layout_weight="1” /〉 </LinearLayout〉 〈LinearLayout android:layout_width=”fill_parent" android:layout_height="wrap_content” android:paddingRight=”5dp” android:paddingLeft="5dp" android:orientation=”horizontal”〉 <Button android:id="@+id/button_ms" android:layout_width=”0dp" android:layout_height=”wrap_content" android:text="MS” android:layout_weight="1" /> 〈Button android:id="@+id/button_1" android:layout_width=”0dp” android:layout_height="wrap_content" android:text=”1" android:layout_weight="1” /> <Button android:id="@+id/button_2” android:layout_width=”0dp” android:layout_height=”wrap_content” android:text="2" android:layout_weight="1" /> 〈Button android:id=”@+id/button_3" android:layout_width="0dp” android:layout_height="wrap_content” android:text="3" android:layout_weight=”1" /〉 <Button android:id="@+id/button_minus" android:layout_width="0dp” android:layout_height="wrap_content" android:text="-" android:layout_weight="1” /> 〈/LinearLayout〉 〈LinearLayout android:layout_width="fill_parent” android:layout_height=”wrap_content" android:paddingRight=”5dp” android:paddingLeft=”5dp” android:orientation="horizontal”〉 <Button android:id=”@+id/button_sign" android:layout_width="0dp" android:layout_height=”wrap_content" android:text=”+/-” android:layout_weight="1” /> <Button android:id="@+id/button_equal” android:layout_width="0dp” android:layout_height="wrap_content" android:text="=" android:layout_weight="1" /> 〈Button android:id=”@+id/button_0” android:layout_width="0dp” android:layout_height=”wrap_content" android:text=”0" android:layout_weight=”1" /> <Button android:id=”@+id/button_dot" android:layout_width="0dp" android:layout_height="wrap_content" android:text=”。” android:layout_weight="1” /> <Button android:id="@+id/button_plus” android:layout_width=”0dp” android:layout_height=”wrap_content” android:text="+” android:layout_weight="1” /〉 〈/LinearLayout> 〈TextView android:id=”@+id/tv_tmp” android:layout_width="wrap_content” android:layout_height=”wrap_content” android:textColor=”@color/pink” android:text=”Memory=”/〉 <TextView android:id="@+id/tv_mem" android:layout_width=”wrap_content” android:layout_height="wrap_content” android:textColor=”@color/sliver" android:text=”0”/〉 〈!-— 显示记忆数据 ——〉 </LinearLayout〉 布局文件中在TextView和EditText中使用的Color要在strings。xml中定义。 <resources> <string name=”app_name">Calculator〈/string〉 <string name=”hello_world”〉Hello world!〈/string〉 <string name=”menu_settings"〉Settings〈/string> <string name=”title_activity_my_calculator"〉MyCalculator〈/string〉 <color name="pink">#ffc0cb〈/color> <color name="sliver">#c0c0c0</color> </resources> 3、java代码: 各种组件的使用在代码里都有明确说明,在此不再说明. package com.example。calculator; import android.os.Bundle; import android。app。Activity; import android。view.Menu; import android。view。View; import android。view.View.OnClickListener; import android。widget。Button; import android.widget。EditText; import android.widget。TextView; public class MyCalculator extends Activity{ double op1=0,op2=0;//记录两次输入的值 char operation;//记录运算符 EditText input;//输入文本框 boolean isInputChar=false;//判断是否输入了运算符 TextView memory;//记忆文本 Button plus,minus,multi,divide,equal;//运算符 Button back,clean,cleanAll;//文本数据处理(回退、本次输 //入清零、所有输入清零) Button mclean,mread,msave;//数据记忆(清除、读取、保存) Button[] btn=new Button[10];//数字 Button dot;//点 Button sign;//正负数转换 @Override public void onCreate(Bundle savedInstanceState) { 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(int i=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); } //按钮监听 private OnClickListener listener=new OnClickListener(){ public void onClick(View v) { // TODO Auto—generated method stub //获取输入数据 String inputText=input.getText().toString(); //对输入数据进行判断 switch(v。getId()){ case R。id。button_bk://后退 if(inputText。length()>1) input。setText(inputText。substring(0, inputText。length()—1)); else if(inputText.length()==1){ input.setText(”0”); } if(input.getText().toString()。compareTo("-")==0){//去除负号 input。setText("0”); } break; case R.id。button_ce://此次输入清零 input。setText(”0”); if(isInputChar) op2=0; else op1=0; break; case R.id.button_c://全部清零,重新计算 input.setText(”0”); op1=0; op2=0; isInputChar=false; break; case R.id。button_mc://清空记忆数据 memory.setText("0”); break; case R。id。button_mr://取出记忆数据并显示 if(memory.getText().toString()。compareTo(”0”)!=0){//记忆数据不为0时才显示 input.setText(memory.getText()); if(isInputChar) op2=Double.parseDouble(memory。getText().toString()); op1=Double.parseDouble(memory。getText().toString()); } break; case R.id。button_ms://取当前文本编辑框内的数据作为记忆数据 memory。setText(input。getText()); break; case R.id.button_dot://点 boolean nodot=(inputText.indexOf(".”)==-1);//判断数据中是否已存在点 if(nodot) input.append("。”); break; case R.id。button_sign://负数或正数 try{ double data=Double。parseDouble(inputText); if(data!=0){ data=data*(-1); input.setText(String。valueOf(data)); } else input.setText("—”); }catch(NumberFormatException err){ input。setText("Number Format Exception!"); } break; //记录运算符 case R。id.button_div: case R。id.button_multi: case R。id。button_minus: case R.id。button_plus: operation=((Button)v).getText()。toString()。charAt(0); isInputChar=true; op1=Double.valueOf(inputText); //input.append(String.valueOf(operation)); input。setText("0”); break; case R.id。button_equal: op2=Double。valueOf(inputText); dealEqual(operation,op1,op2); break; default://输入数字 String num=((Button)v).getText()。toString(); if(inputText。length()==1){ if(inputTpareTo(”0”)==0) input.setText(num); else input。append(num); } else input。append(num); break; } } }; //处理‘='按钮 public void dealEqual(char ch,double op1,double op2){ if(isInputChar){ if(ch==’+’) op1+=op2; else if(ch=='—') op1-=op2; else if(ch=='*’) op1*=op2; else if(ch==’/') op1/=op2; } input。setText(String.valueOf(op1)); } }- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 简单 android 计算器
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文