android-简便计算器

来源:互联网 发布:国际空间站知乎 编辑:程序博客网 时间:2024/05/15 23:49

自己做的简单计算器。

老规矩。右键取得图片地址,利用下载工具下载这个显示不出来的图片。后缀改为rar即可得到源代码项目。


就一个activity

package zhang.calculator;import android.app.Activity;import android.app.AlertDialog;import android.os.Bundle;import android.os.Vibrator;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.Button;import android.widget.TextView;import android.widget.Toast;public class MyCalculator extends Activity { private Vibrator vibrator;  private Double num_a;private Double num_b;private TextView text = null;private String temp = null;// 计算符号private boolean isDot = true;// 小数点控制private boolean clickable = true;// 标志是否按过计算按钮private double memoryd; // 使用内存中存储的数字private int memoryi;private TextView lable=null;private boolean isVib=true;public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.calculator_main);    final Button num1 = (Button) findViewById(R.id.num1);final Button num2 = (Button) findViewById(R.id.num2);final Button num3 = (Button) findViewById(R.id.num3);final Button num4 = (Button) findViewById(R.id.num4);final Button num5 = (Button) findViewById(R.id.num5);final Button num6 = (Button) findViewById(R.id.num6);final Button num7 = (Button) findViewById(R.id.num7);final Button num8 = (Button) findViewById(R.id.num8);final Button num9 = (Button) findViewById(R.id.num9);    Button num0 = (Button) findViewById(R.id.zero);Button point=(Button) findViewById(R.id.point);Button mul=(Button)findViewById(R.id.mul);Button sub=(Button)findViewById(R.id.sub);Button add=(Button)findViewById(R.id.add);Button div=(Button)findViewById(R.id.div);Button sqrt=(Button)findViewById(R.id.sqrt);Button equal=(Button) findViewById(R.id.equal);Button c=(Button) findViewById(R.id.clear);Button cm=(Button)findViewById(R.id.clearm);Button m=(Button)findViewById(R.id.memory);Button tf=(Button)findViewById(R.id.tf);Button mshow=(Button)findViewById(R.id.showmemory);Button back=(Button)findViewById(R.id.back);text = (TextView) findViewById(R.id.showText);lable = (TextView) findViewById(R.id.lable);vibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE);   //0num0.setOnClickListener(new Button.OnClickListener() {public void onClick(View v) {zd();if(text.getText().toString().equalsIgnoreCase("0")){}else{if (clickable == false) {text.setText("");text.setText(text.getText().toString()+"0");clickable = true;} else {text.setText(text.getText().toString()+"0");}}}});//1num1.setOnClickListener(new View.OnClickListener() {public void onClick(View v) {show(num1.getText().toString());}});// 2num2.setOnClickListener(new View.OnClickListener() {public void onClick(View v) {show(num2.getText().toString());}});// 3num3.setOnClickListener(new View.OnClickListener() {public void onClick(View v) {show(num3.getText().toString());}});// 4num4.setOnClickListener(new View.OnClickListener() {public void onClick(View v) {show(num4.getText().toString());}});// 5num5.setOnClickListener(new View.OnClickListener() {public void onClick(View v) {show(num5.getText().toString());}});// 6num6.setOnClickListener(new View.OnClickListener() {public void onClick(View v) {show(num6.getText().toString());}});// 7num7.setOnClickListener(new View.OnClickListener() {public void onClick(View v) {show(num7.getText().toString());}});// 8num8.setOnClickListener(new View.OnClickListener() {public void onClick(View v) {show(num8.getText().toString());}});// 9num9.setOnClickListener(new View.OnClickListener() {public void onClick(View v) {show(num9.getText().toString());}});//.point.setOnClickListener(new View.OnClickListener() {public void onClick(View arg0) {zd();if(text.getText().toString().equalsIgnoreCase("")){}else{if (text.getText().toString()!=""&&isDot == true) {text.setText(text.getText()+".");isDot = false;}else{text.setText(text.getText().toString());}}}});//加add.setOnClickListener(new View.OnClickListener() {public void onClick(View v) {zd();if(text.getText().toString().equalsIgnoreCase("")){}else{if (text.getText() != null){num_a =Double.parseDouble(text.getText().toString());temp = "add";clickable = false;isDot=true;lable.setText("+");}}}});//减sub.setOnClickListener(new View.OnClickListener() {public void onClick(View v) {zd();if(text.getText().toString().equalsIgnoreCase("")){}else{if (text.getText() != null){num_a =Double.parseDouble(text.getText().toString());temp = "sub";clickable = false;lable.setText("—");}else{text.setText("—");}isDot=true;}}});//乘mul.setOnClickListener(new View.OnClickListener() {public void onClick(View v) {zd();if(text.getText().toString().equalsIgnoreCase("")){}else{if (text.getText() != null){num_a =Double.parseDouble(text.getText().toString());temp = "mul";lable.setText("×");clickable = false;isDot=true;}}}});// 除div.setOnClickListener(new View.OnClickListener() {public void onClick(View v) {zd();if(text.getText().toString().equalsIgnoreCase("")){}else{if (text.getText() != null){num_a =Double.parseDouble(text.getText().toString());temp = "div";lable.setText("÷");clickable = false;isDot=true;}}}});//开方sqrt.setOnClickListener(new View.OnClickListener() {public void onClick(View arg0) {zd();if(text.getText().toString().equalsIgnoreCase("")){}else{String s = text.getText().toString();          if (s.charAt(0) == '-') {          Toast.makeText(MyCalculator.this, "负数不能开根号!!",Toast.LENGTH_SHORT).show();            clickable = false;          } else {            text.setText(Double.toString(java.lang.Math.sqrt(Double.parseDouble(text.getText().toString()))));lable.setText("√");            clickable = false;          }}}});//等于equal.setOnClickListener(new View.OnClickListener() {public void onClick(View v) {zd();if (temp != null && text.getText() != null){num_b = (Double.parseDouble(text.getText().toString()));if (temp == "add"){text.setText(Float.toString((float) (num_a + num_b)));temp = null;}else if (temp == "sub"){text.setText(Float.toString((float) (num_a - num_b)));temp = null;}else if (temp == "mul"){text.setText(Float.toString((float) (num_a * num_b)));temp = null;}else if (temp == "div"){text.setText(Float.toString((float) (num_a / num_b)));temp = null;}clickable = false;if(text.getText().toString()==""){isDot =true;}else{isDot =false;}}}});//cc.setOnClickListener(new View.OnClickListener() {public void onClick(View arg0) {zd();text.setText("");lable.setText("");num_a = 0.0;temp = null;clickable = false;isDot = true;}});//cmcm.setOnClickListener(new View.OnClickListener() {public void onClick(View arg0) {zd();memoryd = memoryi = 0;}});//mm.setOnClickListener(new View.OnClickListener() {public void onClick(View arg0) {zd();if (text.getText().toString() != " "){boolean isDot = false;for (int i = 0; i < text.getText().length(); i++){            if ('.' == text.getText().charAt(i)) {                isDot = true;                break;            }}if(text.getText().toString().equalsIgnoreCase("")){memoryd = memoryi = 0;}else{if (isDot == true) {memoryd = Double.parseDouble(text.getText().toString());memoryi = 0; }else {memoryi = Integer.parseInt(text.getText().toString());memoryd = 0;}}clickable = false;}}});//msmshow.setOnClickListener(new View.OnClickListener() {public void onClick(View arg0) {zd();if (memoryd != 0) {            text.setText(Double.toString(memoryd));}        if (memoryi != 0) {            text.setText(Integer.toString(memoryi));        }        clickable = false;}});//取反tf.setOnClickListener(new View.OnClickListener() {public void onClick(View arg0) {zd();if(text.getText().toString().equalsIgnoreCase("")){}else{boolean isNumber = true;          String s = text.getText().toString();          for (int i = 0; i < s.length(); i++)            if (!(s.charAt(i) >= '0' && s.charAt(i) <= '9'                  || s.charAt(i) == '.' || s.charAt(i) == '-')) {                isNumber = false;                break;            }          if (isNumber == true) {            //如果当前字符串首字母有'-'号,代表现在是个负数,再按下时,则将首符号去掉            if (s.charAt(0) == '-') {                text.setText("");                for (int i = 1; i < s.length(); i++) {                  char a = s.charAt(i);                  text.setText(text.getText().toString() + a);                }            }            //如果当前字符串第一个字符不是符号,则添加一个符号在首字母处            else                text.setText('-' + s);          }}}});//backback.setOnClickListener(new View.OnClickListener() {public void onClick(View arg0) {zd();if(clickable == true)if (text.getText().toString() != "") {          String s = text.getText().toString();          text.setText("");          for (int i = 0; i < s.length() - 1; i++) {            char a = s.charAt(i);            text.setText(text.getText().toString() + a);          }}}});}public void zd(){//振动的方法if(isVib==true){long[] pattern = {0, 20, 0, 10}; // OFF/ON/OFF/ON...   vibrator.vibrate(pattern, -1);}else{vibrator.cancel();}}public void show(String i){//1-9的数zd();if (clickable == false) {text.setText("");text.setText(text.getText() + i);clickable = true;} else {text.setText(text.getText() + i);}}public boolean onCreateOptionsMenu(Menu menu) {    //添加菜单// TODO Auto-generated method stub    menu.add(0, 1, 1,R.string.exit);    menu.add(0, 2, 2, R.string.about);    menu.add(1,3,3,"开/关震动");return super.onCreateOptionsMenu(menu);}public boolean onOptionsItemSelected(MenuItem item) {  //设置菜单事件switch(item.getItemId()){case 1:finish();break;case 2:AlertDialog.Builder dialog = new AlertDialog.Builder(this);dialog.setTitle("关于").setMessage("This is a black cool convenient calculator!\nBy:没落凄凉").show();break;case 3:if(isVib){isVib=false;}else{isVib=true;}}return super.onOptionsItemSelected(item);}}
布局

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical"    android:layout_height="fill_parent"     android:layout_width="fill_parent">    <TextViewandroid:id="@+id/lable" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="right" android:singleLine="true" android:scrollHorizontally="true" android:background="@color/black"  android:textColor="@color/write" android:layout_margin="5dip" android:layout_marginBottom="5dip" /><TextViewandroid:id="@+id/showText" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="right" android:textSize="33dip" android:singleLine="true"  android:scrollHorizontally="true" android:background="@color/black"  android:textColor="@color/write" android:bufferType="editable" android:layout_marginLeft="5dip"  android:maxLength="17"  android:layout_marginRight="5dip"/><LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/linearLayout1" android:gravity="center" android:layout_marginTop="5dip" android:paddingTop="5dip">    <Button android:text="C"  android:id="@+id/clear" android:layout_width="75dip" android:layout_height="60dip" android:textSize="45dip" android:textStyle="bold"  android:gravity="center"  android:background="@color/black" android:textColor="@color/write"></Button>    <Button android:text="CM" android:id="@+id/clearm" android:layout_width="75dip" android:layout_height="60dip" android:textSize="45dip"  android:textStyle="bold"  android:background="@color/black" android:textColor="@color/write"></Button>    <Button android:text="M" android:id="@+id/memory" android:layout_width="75dip" android:layout_height="60dip" android:textSize="45dip"  android:textStyle="bold"  android:background="@color/black" android:textColor="@color/write"></Button>    <Button android:text="MS" android:id="@+id/showmemory" android:layout_width="75dip" android:layout_height="60dip" android:textSize="45dip" android:textStyle="bold"  android:background="@color/black" android:textColor="@color/write" ></Button></LinearLayout><LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/linearLayout1" android:gravity="center">    <Button android:text="+" android:id="@+id/add" android:layout_width="75dip" android:layout_height="60dip" android:textSize="45dip"  android:textStyle="bold" android:background="@color/black" android:textColor="@color/write"></Button>    <Button android:text="-" android:id="@+id/sub" android:layout_width="75dip" android:layout_height="60dip" android:textSize="45dip"  android:textStyle="bold" android:background="@color/black" android:textColor="@color/write"></Button>    <Button android:text="×"  android:id="@+id/mul" android:layout_width="75dip" android:layout_height="60dip" android:textSize="45dip"  android:textStyle="bold" android:background="@color/black" android:textColor="@color/write"></Button>    <Button android:text="÷" android:id="@+id/div" android:layout_width="75dip" android:layout_height="60dip" android:textSize="45dip"  android:textStyle="bold" android:background="@color/black" android:textColor="@color/write"></Button></LinearLayout><LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/linearLayout1" android:gravity="center">    <Button android:text="1" android:id="@+id/num1" android:layout_width="75dip" android:layout_height="60dip" android:textSize="45dip"  android:textStyle="bold" android:background="@color/black" android:textColor="@color/write"></Button>    <Button android:text="2" android:id="@+id/num2" android:layout_width="75dip" android:layout_height="60dip" android:textSize="45dip"  android:textStyle="bold" android:background="@color/black" android:textColor="@color/write"></Button>    <Button android:text="3" android:id="@+id/num3" android:layout_width="75dip" android:layout_height="60dip" android:textSize="45dip"  android:textStyle="bold" android:background="@color/black" android:textColor="@color/write"></Button>    <Button android:text="√" android:id="@+id/sqrt" android:layout_width="75dip" android:layout_height="60dip" android:textSize="45dip"  android:textStyle="bold" android:background="@color/black" android:textColor="@color/write"></Button></LinearLayout><LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/linearLayout1" android:gravity="center">    <Button android:text="4" android:id="@+id/num4" android:layout_width="75dip" android:layout_height="60dip" android:textSize="45dip"  android:textStyle="bold" android:background="@color/black" android:textColor="@color/write"></Button>    <Button android:text="5" android:id="@+id/num5" android:layout_width="75dip" android:layout_height="60dip" android:textSize="45dip"  android:textStyle="bold" android:background="@color/black" android:textColor="@color/write"></Button>    <Button android:text="6" android:id="@+id/num6" android:layout_width="75dip" android:layout_height="60dip" android:textSize="45dip"  android:textStyle="bold" android:background="@color/black" android:textColor="@color/write"></Button>    <Button android:text="←" android:id="@+id/back" android:layout_width="75dip" android:layout_height="60dip" android:textSize="45dip"  android:textStyle="bold" android:background="@color/black" android:textColor="@color/write"></Button></LinearLayout><LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center"><LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/linearLayout1" android:orientation="vertical" >    <Button android:text="7" android:id="@+id/num7" android:layout_width="75dip" android:layout_height="60dip" android:textSize="45dip"  android:textStyle="bold" android:background="@color/black" android:textColor="@color/write"></Button>    <Button android:text="0" android:id="@+id/zero" android:layout_width="75dip" android:layout_height="60dip" android:textSize="45dip"  android:textStyle="bold" android:background="@color/black" android:textColor="@color/write"></Button>   </LinearLayout><LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/linearLayout1"  android:orientation="vertical" >    <Button android:text="8" android:id="@+id/num8" android:layout_width="75dip" android:layout_height="60dip" android:textSize="45dip"  android:textStyle="bold" android:background="@color/black" android:textColor="@color/write"></Button>   <Button android:text="+/-" android:id="@+id/tf" android:layout_width="75dip" android:layout_height="60dip" android:textSize="45dip"  android:textStyle="bold" android:background="@color/black" android:textColor="@color/write"></Button>      </LinearLayout>    <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/linearLayout1" android:orientation="vertical" >    <Button android:text="9" android:id="@+id/num9" android:layout_width="75dip" android:layout_height="60dip" android:textSize="45dip"  android:textStyle="bold" android:background="@color/black" android:textColor="@color/write"></Button>   <Button android:text="." android:id="@+id/point" android:layout_width="75dip" android:layout_height="60dip" android:textSize="45dip"  android:textStyle="bold"  android:gravity="center" android:background="@color/black" android:textColor="@color/write"></Button>      </LinearLayout>    <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/linearLayout1" android:orientation="vertical" >    <Button android:text="=" android:id="@+id/equal" android:layout_width="75dip" android:layout_height="120dip" android:textSize="50dip"  android:textStyle="bold" android:background="@color/black" android:textColor="@color/write"/>        </LinearLayout></LinearLayout></LinearLayout>



原创粉丝点击