
本文实例讲述了AndroID开发实现的简单计算器功能。分享给大家供大家参考,具体如下:
这个AndroID计算器虽然还有点小BUG,不过简单的计算功能还是没问题的哦;
先上图看效果
比较简单,所以我就没怎么写注释,应该一看就能明白的
有不明白的可以发信问我
先贴MainActivity.java代码
package com.example.calculator;import androID.app.Activity;import androID.os.Bundle;import androID.vIEw.Menu;import androID.vIEw.MenuItem;import androID.vIEw.VIEw;import androID.vIEw.VIEw.OnClickListener;import androID.Widget.button;import androID.Widget.EditText;import androID.Widget.ImageVIEw;import androID.Widget.TextVIEw;import androID.Widget.Toast;public class MainActivity extends Activity implements OnClickListener { button b1,b2,b3,b4,b5,b6,b7,b8,b9,b0,bp,bs,bm,bd,bc,be; ImageVIEw delete; TextVIEw tv; EditText show; String showString = "",option = ""; int showfirst = 0; String exception = ""; @OverrIDe protected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.activity_main); b0 = (button) findVIEwByID(R.ID.bt_0); b1 = (button) findVIEwByID(R.ID.bt_1); b2 = (button) findVIEwByID(R.ID.bt_2); b3 = (button) findVIEwByID(R.ID.bt_3); b4 = (button) findVIEwByID(R.ID.bt_4); b5 = (button) findVIEwByID(R.ID.bt_5); b6 = (button) findVIEwByID(R.ID.bt_6); b7 = (button) findVIEwByID(R.ID.bt_7); b8 = (button) findVIEwByID(R.ID.bt_8); b9 = (button) findVIEwByID(R.ID.bt_9); bp = (button) findVIEwByID(R.ID.bt_plus); bs = (button) findVIEwByID(R.ID.bt_sub); bm = (button) findVIEwByID(R.ID.bt_mutilate); bd = (button) findVIEwByID(R.ID.bt_div); bc = (button) findVIEwByID(R.ID.bt_c); be = (button) findVIEwByID(R.ID.bt_equ); b1.setonClickListener(this); b2.setonClickListener(this); b3.setonClickListener(this); b4.setonClickListener(this); b5.setonClickListener(this); b6.setonClickListener(this); b7.setonClickListener(this); b8.setonClickListener(this); b9.setonClickListener(this); b0.setonClickListener(this); bp.setonClickListener(this); bs.setonClickListener(this); bm.setonClickListener(this); bd.setonClickListener(this); bc.setonClickListener(this); be.setonClickListener(this); show = (EditText) findVIEwByID(R.ID.et_show); delete = (ImageVIEw) findVIEwByID(R.ID.iv_delete); delete.setonClickListener(this); tv=(TextVIEw) findVIEwByID(R.ID.author); tv.setonClickListener(this); } @OverrIDe public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main,menu); return true; } @OverrIDe public boolean onoptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button,so long // as you specify a parent activity in AndroIDManifest.xml. int ID = item.getItemID(); if (ID == R.ID.action_settings) { return true; } return super.onoptionsItemSelected(item); } @OverrIDe public voID onClick(VIEw v) { switch (v.getID()) { case R.ID.bt_0: showString += "0"; break; case R.ID.bt_1: showString += "1"; break; case R.ID.bt_2: showString += "2"; break; case R.ID.bt_3: showString += "3"; break; case R.ID.bt_4: showString += "4"; break; case R.ID.bt_5: showString += "5"; break; case R.ID.bt_6: showString += "6"; break; case R.ID.bt_7: showString += "7"; break; case R.ID.bt_8: showString += "8"; break; case R.ID.bt_9: showString += "9"; break; case R.ID.bt_plus: if (showString.equals("")) exception = "先输入数值哦"; else { showfirst = Integer.parseInt(showString); showString = ""; option = "+"; } break; case R.ID.bt_sub: if (showString.equals("")) exception = "先输入数值哦"; else { showfirst = Integer.parseInt(showString); showString = ""; option = "-"; } break; case R.ID.bt_mutilate: if (showString.equals("")) exception = "先输入数值哦"; else { showfirst = Integer.parseInt(showString); showString = ""; option = "*"; } break; case R.ID.bt_div: if (showString.equals("")) exception = "先输入数值哦"; else { showfirst = Integer.parseInt(showString); showString = ""; option = "/"; } break; case R.ID.bt_equ: if (option.equals("+")) showString = showfirst + Integer.parseInt(showString) + ""; else if (option.equals("-")) { showString = showfirst - Integer.parseInt(showString) + ""; } else if (option.equals("*")) { showString = showfirst * Integer.parseInt(showString) + ""; } else if (option.equals("/")) { if (showString.equals("0")) { exception = "除数不能为0!"; } else showString = showfirst / Integer.parseInt(showString) + ""; } break; case R.ID.bt_c: showString = ""; break; case R.ID.iv_delete: Toast.makeText(MainActivity.this,showString + "已被清空",Toast.LENGTH_SHORT).show(); showString = ""; break; case R.ID.author: Toast.makeText(MainActivity.this,"郑明亮\n软件工程\nQQ:1072307340",Toast.LENGTH_SHORT).show(); break; default: break; } if (exception.equals("")) show.setText(showString); else { show.setText(exception); exception = ""; } // 设置文本框颜色; if (!show.getText().toString().equals("")) { delete.setBackgroundcolor(R.drawable.delete_gray); } else { delete.setBackgroundResource(R.drawable.delete); } }}再贴布局activity_main.xml:
<linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID" xmlns:tools="http://schemas.androID.com/tools" androID:layout_wIDth="match_parent" androID:layout_height="match_parent" androID:orIEntation="vertical" tools:context="com.example.calculator.MainActivity" > <relativeLayout androID:layout_wIDth="match_parent" androID:layout_height="wrap_content" > <EditText androID:ID="@+ID/et_show" androID:layout_wIDth="fill_parent" androID:layout_height="wrap_content" androID:hint="请输入数字" /> <ImageVIEw androID:ID="@+ID/iv_delete" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:layout_alignRight="@ID/et_show" androID:src="@drawable/delete_and_deletegray" > </ImageVIEw> </relativeLayout> <GrIDLayout androID:layout_wIDth="fill_parent" androID:layout_height="wrap_content" androID:layout_below="@+ID/et_show" androID:focusable="false" androID:gravity="center" androID:layout_margintop="25dp" androID:columnCount="4" androID:horizontalSpacing="0dp" androID:orIEntation="horizontal" androID:stretchMode="none" > <button androID:ID="@+ID/bt_1" androID:layout_height="wrap_content" androID:text="1" /> <button androID:ID="@+ID/bt_2" androID:text="2" /> <button androID:ID="@+ID/bt_3" androID:text="3" /> <button androID:ID="@+ID/bt_div" androID:text="/" /> <button androID:ID="@+ID/bt_4" androID:text="4" /> <button androID:ID="@+ID/bt_5" androID:text="5" /> <button androID:ID="@+ID/bt_6" androID:text="6" /> <button androID:ID="@+ID/bt_mutilate" androID:text="X" /> <button androID:ID="@+ID/bt_7" androID:text="7" /> <button androID:ID="@+ID/bt_8" androID:text="8" /> <button androID:ID="@+ID/bt_9" androID:text="9" /> <button androID:ID="@+ID/bt_sub" androID:text="-" /> <button androID:ID="@+ID/bt_0" androID:layout_columnSpan="2" androID:layout_gravity="fill_horizontal" androID:text="0" androID:wIDth="2dp" /> <button androID:ID="@+ID/bt_c" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:text="C" /> <button androID:ID="@+ID/bt_plus" androID:layout_gravity="fill_vertical" androID:layout_rowspan="2" androID:text="+" /> <button androID:ID="@+ID/bt_equ" androID:layout_columnSpan="3" androID:layout_gravity="fill_horizontal" androID:text="=" /> </GrIDLayout> <TextVIEw androID:ID="@+ID/author" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:text="Author:Bri" /> <TextVIEw androID:ID="@+ID/test" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:text="test:www.jb51.net" /></linearLayout>
我还写了一个drawable的xml,自己看吧
delete_and_deletegray.xml:
<?xml version="1.0" enCoding="utf-8"?><selector xmlns:androID="http://schemas.androID.com/apk/res/androID"> <item androID:drawable="@drawable/delete_gray" androID:state_focused="false" androID:state_pressed="false"></item> <item androID:drawable="@drawable/delete" androID:state_focused="false" androID:state_pressed="false" androID:state_selected="true"/> <item androID:drawable="@drawable/delete" androID:state_pressed="true" androID:state_selected="false"/> <item androID:drawable="@drawable/delete" androID:state_focused="true" androID:state_pressed="true"/></selector>
附:完整实例代码点击此处本站下载。
PS:这里再为大家推荐几款计算工具供大家进一步参考借鉴:
在线一元函数(方程)求解计算工具:
http://tools.jb51.net/jisuanqi/equ_jisuanqi
科学计算器在线使用_高级计算器在线计算:
http://tools.jb51.net/jisuanqi/jsqkexue
在线计算器_标准计算器:
http://tools.jb51.net/jisuanqi/jsq
更多关于AndroID相关内容感兴趣的读者可查看本站专题:《Android开发入门与进阶教程》、《Android基本组件用法总结》、《Android视图View技巧总结》、《Android布局layout技巧总结》及《Android控件用法总结》
希望本文所述对大家AndroID程序设计有所帮助。
总结以上是内存溢出为你收集整理的Android开发实现的简单计算器功能【附完整demo源码下载】全部内容,希望文章能够帮你解决Android开发实现的简单计算器功能【附完整demo源码下载】所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)