android
来源:互联网 发布:ios足球游戏源码 编辑:程序博客网 时间:2024/06/05 09:06
从大二上快结束时接触android,此处留言一计算器代码:
这是活动的java文件,至于他的XML文件,大家可以自由发挥,只要按钮的id可以对应上,就可以
package com.example.administrator.test;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.view.View.OnClickListener;import android.widget.TextView;import java.lang.String;import java.math.*;public class MainActivity extends AppCompatActivity implements OnClickListener { //按钮声明 TextView text1 = null; TextView text2 =null; Button button_0 = null; Button button_1 = null; Button button_2 = null; Button button_3 = null; Button button_4 = null; Button button_5 = null; Button button_6 = null; Button button_7 = null; Button button_8 = null; Button button_9 = null; Button button_ce = null; Button button_c = null; Button button_div = null; Button button_mul = null; Button button_sub = null; Button button_add = null; Button button_rel = null; Button button_point = null; Button button_equal = null; int op = 0;//操作符 String str = ""; BigDecimal num = BigDecimal.ZERO,ans = BigDecimal.ZERO; boolean is_op = false; boolean is_num = false; boolean rel = false; boolean equal = false; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.first_layout); //获取id text1 = (TextView) findViewById(R.id.text1); text2 = (TextView)findViewById(R.id.text2); button_0 = (Button) findViewById(R.id.button_0); button_1 = (Button) findViewById(R.id.button_1); button_2 = (Button) findViewById(R.id.button_2); button_3 = (Button) findViewById(R.id.button_3); button_4 = (Button) findViewById(R.id.button_4); button_5 = (Button) findViewById(R.id.button_5); button_6 = (Button) findViewById(R.id.button_6); button_7 = (Button) findViewById(R.id.button_7); button_8 = (Button) findViewById(R.id.button_8); button_9 = (Button) findViewById(R.id.button_9); button_ce = (Button) findViewById(R.id.button_ce); button_c = (Button) findViewById(R.id.button_c); button_div = (Button) findViewById(R.id.button_div); button_mul = (Button) findViewById(R.id.button_mul); button_sub = (Button) findViewById(R.id.button_sub); button_add = (Button) findViewById(R.id.button_add); button_rel = (Button)findViewById(R.id.button_rel); button_point = (Button) findViewById(R.id.button_point); button_equal = (Button) findViewById(R.id.button_equal); //添加监听 button_0.setOnClickListener(this); button_1.setOnClickListener(this); button_2.setOnClickListener(this); button_3.setOnClickListener(this); button_4.setOnClickListener(this); button_5.setOnClickListener(this); button_6.setOnClickListener(this); button_7.setOnClickListener(this); button_8.setOnClickListener(this); button_9.setOnClickListener(this); button_ce.setOnClickListener(this); button_c.setOnClickListener(this); button_div.setOnClickListener(this); button_mul.setOnClickListener(this); button_sub.setOnClickListener(this); button_add.setOnClickListener(this); button_point.setOnClickListener(this); button_rel.setOnClickListener(this); button_equal.setOnClickListener(this); text1.setOnClickListener(this); text2.setOnClickListener(this); } public void onClick(View v){ switch(v.getId()){ case R.id.button_0: str += 0; is_num = true; is_op = false; break; case R.id.button_1: str += "1"; is_num = true; is_op = false; break; case R.id.button_2: str += "2"; is_num = true; is_op = false; break; case R.id.button_3: str += "3"; is_num = true; is_op = false; break; case R.id.button_4: str += "4"; is_num = true; is_op = false; break; case R.id.button_5: str += "5"; is_num = true; is_op = false; break; case R.id.button_6: str += "6"; is_num = true; is_op = false; break; case R.id.button_7: str += "7"; is_num = true; is_op = false; break; case R.id.button_8: str += "8"; is_num = true; is_op = false; break; case R.id.button_9: str += "9"; is_num = true; is_op = false; break; case R.id.button_point: str += "."; is_num = true; is_op = false; break; case R.id.button_add: if(op!=0) return; op = 1; str += "+"; is_op = true; is_num = false; break; case R.id.button_sub: if(op!=0){ return; } op = 2; str += "-"; is_op = true; is_num = false; break; case R.id.button_mul: if(op!=0){ return; } op = 3; str += "*"; is_op = true; is_num = false; break; case R.id.button_div: if(op!=0){ return; } op = 4; str += "/"; is_op = true; is_num = false; break; case R.id.button_ce: op = 0; text1.setText(""); str = ""; ans = BigDecimal.ZERO; num = BigDecimal.ZERO; break; case R.id.button_c: str = ""; num = BigDecimal.ZERO; break; case R.id.button_rel: rel = true; break; case R.id.button_equal: if(num.equals(BigDecimal.ZERO)){ num = new BigDecimal(str); } switch(op) { case 0: return; case 1: ans = ans.add(num); break; case 2: ans = ans.subtract(num); break; case 3: ans = ans.multiply(num); break; case 4: ans = ans.divide(num,3,4); break; default: return; } op = 0; is_num = false; is_op = false; equal = true; num = BigDecimal.ZERO; text1.setText(""); str = String.valueOf(ans); break; default: break; } //首轮计算 等于号问题 if(equal&&is_num){ int len = str.length(); ans = BigDecimal.ZERO; str = str.substring(len-1,len); equal = false; } //第二次计算 if(is_op&&(!ans.equals(BigDecimal.ZERO))){ // str = ans.toString()+str; text1.setText(str); str = ""; equal = false; } //第一次遇到操作数 if(is_op&&(ans.equals(BigDecimal.ZERO))){ String temp; text1.setText(str); int len = str.length(); if(num.equals(BigDecimal.ZERO)) { temp = str.substring(0, len - 1); num = new BigDecimal(temp); ans = num; num = BigDecimal.ZERO; } str = ""; } //正负号处理的部分 if(rel){ num = new BigDecimal(str); if(op==0){ num = num.negate(); ans = num; str = num.toString(); num = BigDecimal.ZERO; } else{ num = num.negate(); str = num.toString(); } rel = false; } text2.setText(str); } }
0 0
- Android
- android
- Android
- android
- android
- Android
- Android
- android
- android
- android
- Android
- Android
- android!!!
- android
- android
- android
- android
- android:
- C# Winform资源文件的创建、加载和使用
- 108. Convert Sorted Array to Binary Search Tree
- Android中关于SQLiteDataBase的query()方法参数详解,, limit ? offset? 分页用法
- selenium定位元素,合理设置等待时间
- Nginx负载均衡选项upstream
- android
- NS3中PyViz的安装
- emWin 卡顿 触屏失效 黑屏 解决方法
- JNI学习笔记
- 不支持类的版本
- Opencv2系列学习笔记5(检测Harris角点)
- CSS三大模型
- SSM框架整合教程(新手篇)
- vs2015+opencv2.4.13配置