Android计算器项目
来源:互联网 发布:中级程序员工资待遇 编辑:程序博客网 时间:2024/06/05 19:49
界面布局有点搓。Andriod只是业余自学玩玩,并非学习重点。
activity_main.xml布局文件:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <EditText android:hint="@string/edt" android:layout_weight="2" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/edt" /> <LinearLayout android:baselineAligned="false" android:orientation="horizontal" android:layout_weight="1" android:layout_width="match_parent" android:layout_height="wrap_content"> <LinearLayout android:layout_weight="1" android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="match_parent"> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:text="@string/button1" android:id="@+id/button1" /> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:text="@string/button4" android:id="@+id/button4" /> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:text="@string/button7" android:id="@+id/button7" /> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:text="@string/button10" android:id="@id/button10"/> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:text="@string/button13" android:id="@id/button13"/> </LinearLayout> <LinearLayout android:layout_weight="1" android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="match_parent"> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:text="@string/button2" android:id="@+id/button2" /> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:text="@string/button5" android:id="@+id/button5" /> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:text="@string/button8" android:id="@+id/button8" /> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:text="@string/button11" android:id="@+id/button11" /> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:text="@string/button14" android:id="@+id/button14"/> </LinearLayout> <LinearLayout android:layout_weight="1" android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="match_parent"> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:text="@string/button3" android:id="@+id/button3" /> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:text="@string/button6" android:id="@+id/button6" /> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:text="@string/button9" android:id="@+id/button9" /> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:text="@string/button12" android:id="@+id/button12" /> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:text="@string/button15" android:id="@id/button15"/> </LinearLayout> <LinearLayout android:layout_weight="1" android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="match_parent"> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="2" android:text="@string/button16" android:id="@+id/button16" /> <Button android:layout_weight="1" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/button17" android:id="@+id/button17"/> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="2" android:text="@string/button18" android:id="@+id/button18" /> </LinearLayout> </LinearLayout></LinearLayout>
strings.xml布局文件:
<resources> <string name="app_name">计算器</string> <string name="button1">7</string> <string name="button2">8</string> <string name="button3">9</string> <string name="button4">4</string> <string name="button5">5</string> <string name="button6">6</string> <string name="button7">1</string> <string name="button8">2</string> <string name="button9">3</string> <string name="button10">0</string> <string name="button11">+</string> <string name="button12">-</string> <string name="button13">.</string> <string name="button14">×</string> <string name="button15">÷</string> <string name="button16">删除</string> <string name="button17">退格</string> <string name="button18">=</string> <string name="edt">hello</string></resources>
MainActivity.java逻辑代码:
package com.example.xiong.myapplication;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;public class MainActivity extends AppCompatActivity { Button btn_0; Button btn_1; Button btn_2; Button btn_3; Button btn_4; Button btn_5; Button btn_6; Button btn_7; Button btn_8; Button btn_9; Button btn_point;//小数点按钮 Button btn_plus;//加号按钮 Button btn_minus;//减号按钮 Button btn_multiply;//乘号按钮 Button btn_divide;//除号按钮 Button btn_clear;//删除按钮 Button btn_back;//退格按钮 Button btn_equal;//等于按钮 EditText et_play;//显示输入内容的显示屏 private String str_ope = "+"; //运算符 private StringBuffer str_display = new StringBuffer();//显示 private String str_result;//结果显示 private double num1; private double num2; private boolean flag = true;//小数点个数开关控制 private boolean b_sub, b_mul, b_div;//运算符开关控制 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); /*初始化控件*/ btn_0 = (Button)findViewById(R.id.button10); btn_1 = (Button)findViewById(R.id.button7); btn_2 = (Button)findViewById(R.id.button8); btn_3 = (Button)findViewById(R.id.button9); btn_4 = (Button)findViewById(R.id.button4); btn_5 = (Button)findViewById(R.id.button5); btn_6 = (Button)findViewById(R.id.button6); btn_7 = (Button)findViewById(R.id.button1); btn_8 = (Button)findViewById(R.id.button2); btn_9 = (Button)findViewById(R.id.button3); btn_point = (Button)findViewById(R.id.button13); btn_clear = (Button)findViewById(R.id.button16); btn_plus = (Button)findViewById(R.id.button11); btn_minus = (Button)findViewById(R.id.button12); btn_multiply = (Button)findViewById(R.id.button14); btn_divide = (Button)findViewById(R.id.button15); btn_back = (Button)findViewById(R.id.button17); btn_equal = (Button)findViewById(R.id.button18); et_play = (EditText)findViewById(R.id.edt); btn_0.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { str_display.append("0"); et_play.setText(str_display.toString()); } }); btn_1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { str_display.append("1"); } }); btn_2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { str_display.append("2"); et_play.setText(str_display.toString()); } }); btn_3.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { str_display.append("3"); et_play.setText(str_display.toString()); } }); btn_4.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { str_display.append("4"); et_play.setText(str_display.toString()); } }); btn_5.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { str_display.append("5"); et_play.setText(str_display.toString()); } }); btn_6.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { str_display.append("6"); et_play.setText(str_display.toString()); } }); btn_7.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { str_display.append("7"); et_play.setText(str_display.toString()); } }); btn_8.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { str_display.append("8"); et_play.setText(str_display.toString()); } }); btn_9.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { str_display.append("9"); et_play.setText(str_display.toString()); } }); btn_point.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if(flag) { str_display.append("."); flag = false; } } }); btn_back.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if(str_display.length() != 0){ str_display.deleteCharAt(str_display.length() - 1); et_play.setText(str_display.toString()); } } }); btn_plus.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { str_ope = "+"; if(!(str_display.toString().equals(""))) { num1 += Double.parseDouble(str_display.toString()); str_display = new StringBuffer(""); } if(!(str_result == null)) { num1 = Double.parseDouble(str_result); str_result = null; } et_play.setText(String.valueOf(num1)); flag = true; } }); btn_minus.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { str_ope = "-"; if(!b_sub && !(str_display.toString().equals(""))) { num1 = Double.parseDouble(str_display.toString()); et_play.setText(String.valueOf(num1)); str_display = new StringBuffer(""); b_sub = true; } else { if(!(str_display.toString().equals(""))) { num1 -= Double.parseDouble(str_display.toString()); str_display = new StringBuffer(); } if(!(str_result == null)) { num1 = Double.parseDouble(str_result); str_result = null; } et_play.setText(String.valueOf(num1)); } flag = true; } }); btn_multiply.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { str_ope = "*"; if(!b_mul && !(str_display.toString().equals(""))) { num1 = Double.parseDouble(str_display.toString()); et_play.setText(String.valueOf(num1)); str_display = new StringBuffer(); b_mul = true; } else { if(!(str_display.toString().equals(""))) { num1 *= Double.parseDouble(str_display.toString()); str_display = new StringBuffer(); } if(!(str_result == null)) { num1 = Double.parseDouble(str_result); str_result = null; } et_play.setText(String.valueOf(num1)); } flag = true; } }); btn_divide.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { str_ope = "/"; if(!b_div && !(str_display.toString().equals(""))) { num1 = Double.parseDouble(str_display.toString()); et_play.setText(String.valueOf(num1)); str_display = new StringBuffer(); b_div = true; } else { if(!(str_display.toString().equals(""))) { if(Double.parseDouble(str_display.toString()) == 0) { Toast.makeText(MainActivity.this, "除数不能为0", Toast.LENGTH_LONG).show(); } else { num1 /= Double.parseDouble(str_display.toString()); str_display = new StringBuffer(""); } } if(!(str_result == null)) { num1 = Double.parseDouble(str_result); str_result = null; } et_play.setText(String.valueOf(num1)); } flag = true; } }); btn_clear.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { str_ope = "+"; str_display = new StringBuffer(""); str_result = null; num1 = 0; num2 = 0; flag = true; b_sub = false; b_mul = false; b_div = false; et_play.setText("0.0"); } }); btn_equal.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if(str_ope.equals("+")) { num2 = Double.parseDouble(str_display.toString()); str_result = String.valueOf(num1 + num2); et_play.setText(str_result); str_display = new StringBuffer(""); } if(str_ope.equals("-")) { num2 = Double.parseDouble(str_display.toString()); str_result = String.valueOf(num1 - num2); et_play.setText(str_result); str_display = new StringBuffer(""); } if(str_ope.equals("*")) { num2 = Double.parseDouble(str_display.toString()); str_result = String.valueOf(num1 * num2); et_play.setText(str_result); str_display = new StringBuffer(); } if(str_ope.equals("/")) { num2 = Double.parseDouble(str_display.toString()); if(num2 != 0) { str_result = String.valueOf(num1 / num2); et_play.setText(str_result); } else { Toast.makeText(MainActivity.this, "除数不能为0", Toast.LENGTH_LONG).show(); str_display = new StringBuffer(""); } } } }); }}
0 0
- Android小项目:计算器
- Android小项目:计算器
- Android计算器项目
- Android练手项目----计算器
- Android小项目之计算器
- Android项目之简单计算器
- android:第一个android项目 简单计算器
- 第一个Android项目——计算器
- Android小项目——计算器
- Android入门项目1:简易计算器
- Android------个人项目(歆语计算器)
- 计算器项目
- android计算器
- android 计算器
- Android计算器
- android计算器
- android计算器
- android 计算器
- FileInputStream,FileOutputStream,FileReader,FileWriter,BufferedReader,BufferedWriter相关的IO技术
- Leetcode-137. Single Number II
- AR摄像机不能聚焦问题的解决办法
- 微信公共號開發學習資料
- passwd文件意义与ls-l的含义
- Android计算器项目
- uva 10622 Perfect Pth Power(算数基本定理)
- 自定义ViewController的转场动画
- malloc函数实现过程
- 172. Factorial Trailing Zeroes
- Jquery 切换
- iOS自定义转场动画
- SVN树冲突TreeConflict怎么解决
- 第九周项目三 稀疏矩阵的三元组表示的实现及应用(1)