Android——计算器
layout文件:
<?xml version="1.0" encoding="utf-8"?>
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:rowCount="6"
android:columnCount="4"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.hanqi.testapp2.PractiseActivity5">
<TextView
android:layout_width="match_parent"
android:layout_height="200dp"
android:layout_columnSpan="4"
android:gravity="bottom|right"
android:id="@+id/tv_1"
android:textSize="50sp"
android:paddingRight="10dp"
android:textColor="#0F0"/>
<Button
android:layout_width="0dp"
android:layout_height="0dp"
android:text="c"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:textSize="25sp"
android:id="@+id/bt_c"/>
<Button
android:layout_width="0dp"
android:layout_height="0dp"
android:text="←"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:textSize="25sp"
android:id="@+id/bt_tui"/>
<Button
android:layout_width="0dp"
android:layout_height="0dp"
android:text="÷"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:textSize="25sp"
android:id="@+id/bt_chu"
android:onClick="bt_chu_onClick"/>
<Button
android:layout_width="0dp"
android:layout_height="0dp"
android:text="×"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:textSize="25sp"
android:id="@+id/bt_cheng"
android:onClick="bt_cheng_onClick"/>
<Button
android:layout_width="0dp"
android:layout_height="0dp"
android:text="7"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:textSize="25sp"
android:onClick="bt_onClick"
android:id="@+id/bt7"/>
<Button
android:layout_width="0dp"
android:layout_height="0dp"
android:text="8"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:textSize="25sp"
android:onClick="bt_onClick"
android:id="@+id/bt8"/>
<Button
android:layout_width="0dp"
android:layout_height="0dp"
android:text="9"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:textSize="25sp"
android:onClick="bt9_onClick"
android:id="@+id/bt9"/>
<Button
android:layout_width="0dp"
android:layout_height="0dp"
android:text="-"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:textSize="25sp"
android:id="@+id/bt_jian"
android:onClick="bt_jian_onClick"/>
<Button
android:layout_width="0dp"
android:layout_height="0dp"
android:text="4"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:textSize="25sp"
android:id="@+id/bt4"/>
<Button
android:layout_width="0dp"
android:layout_height="0dp"
android:text="5"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:textSize="25sp"
android:id="@+id/bt5"/>
<Button
android:layout_width="0dp"
android:layout_height="0dp"
android:text="6"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:textSize="25sp"
android:id="@+id/bt6"/>
<Button
android:layout_width="0dp"
android:layout_height="0dp"
android:text="+"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:textSize="25sp"
android:id="@+id/bt_jia"
android:onClick="bt_jia_onClick"/>
<Button
android:layout_width="0dp"
android:layout_height="0dp"
android:text="1"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:textSize="25sp"
android:id="@+id/bt1"/>
<Button
android:layout_width="0dp"
android:layout_height="0dp"
android:text="2"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:textSize="25sp"
android:id="@+id/bt2"/>
<Button
android:layout_width="0dp"
android:layout_height="0dp"
android:text="3"
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:textSize="25sp"
android:id="@+id/bt3"/>
<Button
android:layout_width="0dp"
android:layout_height="0dp"
android:text="="
android:layout_columnWeight="1"
android:layout_rowSpan="2"
android:layout_rowWeight="1"
android:textSize="25sp"
android:layout_gravity="fill"
android:id="@+id/bt_deng"/>
<Button
android:layout_width="0dp"
android:layout_height="0dp"
android:text="0"
android:layout_columnWeight="1"
android:layout_columnSpan="2"
android:layout_rowWeight="1"
android:textSize="25sp"
android:id="@+id/bt0"/>
<Button
android:layout_width="0dp"
android:layout_height="0dp"
android:text="."
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:textSize="25sp"
android:id="@+id/bt_dian"/>
</GridLayout>
java类:
package com.hanqi.testapp2; import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.TextView; public class PractiseActivity5 extends AppCompatActivity { TextView tv_1;
Button bt9;
Button bt4;
Button bt5;
Button bt6;
Button bt_jia;
Button bt_jian;
Button bt1;
Button bt2;
Button bt3;
Button bt_cheng;
Button bt0;
Button bt_dian;
Button bt_chu;
Button bt_tui;
Button bt7;
Button bt8;
Button bt_deng;
Button bt_c; //s1存储数据
double s1 = 0;
//判断运算
int s2 = 0;
//承载连续运算数字
double s3 = 0;
//显示结果
double s4;
//运算完成后使用结果直接下次运算
int s5=0;
//确认小数点输入一次
int s6=0; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_practise5);
tv_1 = (TextView)findViewById(R.id.tv_1);
bt0 = (Button)findViewById(R.id.bt0);
bt1 = (Button)findViewById(R.id.bt1);
bt2 = (Button)findViewById(R.id.bt2);
bt3 = (Button)findViewById(R.id.bt3);
bt4 = (Button)findViewById(R.id.bt4);
bt5 = (Button)findViewById(R.id.bt5);
bt6 = (Button)findViewById(R.id.bt6);
bt7 = (Button)findViewById(R.id.bt7);
bt8 = (Button)findViewById(R.id.bt8);
bt9 = (Button)findViewById(R.id.bt9);
bt_jia = (Button)findViewById(R.id.bt_jia);
bt_jian = (Button)findViewById(R.id.bt_jian);
bt_cheng = (Button)findViewById(R.id.bt_cheng);
bt_dian = (Button)findViewById(R.id.bt_dian);
bt_chu = (Button)findViewById(R.id.bt_chu);
bt_tui = (Button)findViewById(R.id.bt_tui);
bt_deng = (Button)findViewById(R.id.bt_deng);
bt_c = (Button)findViewById(R.id.bt_c);
bt_tui = (Button)findViewById(R.id.bt_tui); bt_onClick bt_l = new bt_onClick();
bt_dian_onClick bt_dian1 = new bt_dian_onClick();
bt_jia_onClick bt_jia1 = new bt_jia_onClick();
bt_jian_onClick bt_jian1 = new bt_jian_onClick();
bt_cheng_onClick bt_cheng1 = new bt_cheng_onClick();
bt_chu_onClick bt_chu1 = new bt_chu_onClick();
bt_deng_onClick bt_deng1 = new bt_deng_onClick();
bt_c_onClick bt_c1 = new bt_c_onClick();
bt_tui_onClick bt_tui1 = new bt_tui_onClick(); bt0.setOnClickListener(bt_l);
bt1.setOnClickListener(bt_l);
bt2.setOnClickListener(bt_l);
bt3.setOnClickListener(bt_l);
bt4.setOnClickListener(bt_l);
bt5.setOnClickListener(bt_l);
bt6.setOnClickListener(bt_l);
bt7.setOnClickListener(bt_l);
bt8.setOnClickListener(bt_l);
bt9.setOnClickListener(bt_l);
bt_dian.setOnClickListener(bt_dian1);
bt_jia.setOnClickListener(bt_jia1);
bt_jian.setOnClickListener(bt_jian1);
bt_chu.setOnClickListener(bt_chu1);
bt_cheng.setOnClickListener(bt_cheng1);
bt_deng.setOnClickListener(bt_deng1);
bt_c.setOnClickListener(bt_c1);
bt_tui.setOnClickListener(bt_tui1);
}
class bt_onClick implements View.OnClickListener
{
@Override
public void onClick(View v) {
if (s5 == 1) {
tv_1.setText(null);
s1 = 0;
s2 = 0;
s3 = 0;
s4 = 0;
s5 = 0;
}
String str = tv_1.getText().toString();
//转成按钮
Button bt = (Button)v;
//取得按钮上的文字
String str2 = bt.getText().toString();
str += str2;
tv_1.setText(str);
}
}
class bt_dian_onClick implements View.OnClickListener {
public void onClick(View v) {
if(s5==1)
{
tv_1.setText(null);
s1=0;
s2=0;
s3=0;
s4=0;
s5=0;
} if(s6==1)
{
return;
}
Button bt = (Button) v;
String str = tv_1.getText().toString(); if(str.length()==0||str.equals("0.")){
tv_1.setText("0.");
return;
} String str2 = bt.getText().toString();
str += str2;
tv_1.setText(str);
s6=1;
}
}
class bt_jia_onClick implements View.OnClickListener
{
@Override
public void onClick(View v) {
s5 = 0;
String str=tv_1.getText().toString();
if (str.length()==0)
{
return;
}
if (s1 == 0) {
s1 = Double.parseDouble(str); } else {
s3 = Double.parseDouble(str);
if (s2 == 0)
{
s1 = s3;
}
if (s2 == 1)
{
s1 += s3;
}
if (s2 == 2)
{
s1 -= s3;
}
if (s2 == 3)
{
s1 *= s3;
}
if (s2==4&&s3!=0)
{
s1 /= s3;
}
if (s2==4&&s3==0)
{
s1=0;
s2=0;
s3=0;
s4=0;
s5=0;
}
}
tv_1.setText(null);
s2 = 1;
s6=0;
}
}
class bt_jian_onClick implements View.OnClickListener
{
@Override
public void onClick(View v) {
s5 = 0;
String str=tv_1.getText().toString();
if (str.length()==0)
{
return;
}
if (s1 == 0) {
s1 = Double.parseDouble(str); } else {
s3 = Double.parseDouble(str);
if (s2 == 0)
{
s1 = s3;
}
if (s2 == 1)
{
s1 += s3;
}
if (s2 == 2)
{
s1 -= s3;
}
if (s2 == 3)
{
s1 *= s3;
}
if (s2==4&&s3!=0)
{
s1 /= s3;
}
if (s2==4&&s3==0)
{
s1=0;
s2=0;
s3=0;
s4=0;
s5=0;
}
}
tv_1.setText(null);
s2 = 2;
s6=0;
}
}
class bt_cheng_onClick implements View.OnClickListener
{
@Override
public void onClick(View v) {
s5 = 0;
String str=tv_1.getText().toString();
if (str.length()==0)
{
return;
}
if (s1 == 0) {
s1 = Double.parseDouble(str); } else {
s3 = Double.parseDouble(str);
if (s2 == 0)
{
s1 = s3;
}
if (s2 == 1)
{
s1 += s3;
}
if (s2 == 2)
{
s1 -= s3;
}
if (s2 == 3)
{
s1 *= s3;
}
if (s2==4&&s3!=0)
{
s1 /= s3;
}
if (s2==4&&s3==0)
{
s1=0;
s2=0;
s3=0;
s4=0;
s5=0;
}
}
tv_1.setText(null);
s2 = 3;
s6=0;
}
}
class bt_chu_onClick implements View.OnClickListener
{
@Override
public void onClick(View v) {
s5 = 0;
String str=tv_1.getText().toString();
if (str.length()==0)
{
return;
}
if (s1 == 0) {
s1 = Double.parseDouble(str); } else {
s3 = Double.parseDouble(str);
if (s2 == 0)
{
s1 = s3;
}
if (s2 == 1)
{
s1 += s3;
}
if (s2 == 2)
{
s1 -= s3;
}
if (s2 == 3)
{
s1 *= s3;
}
if (s2==4&&s3!=0)
{
s1 /= s3;
}
if (s2==4&&s3==0)
{
s1=0;
s2=0;
s3=0;
s4=0;
s5=0;
}
}
tv_1.setText(null);
s2 = 4;
s6=0;
}
}
class bt_deng_onClick implements View.OnClickListener {
public void onClick(View v) {
String str = tv_1.getText().toString();
if(str.length()==0)
{
return;
}
s3 = Double.parseDouble(str);
if(s3==0&&s2==4)
{
return;
}
if(s2==0)
{
s4=s3;
}
if(s2==1)
{
s4=s1+s3;
}
if(s2==2)
{
s4=s1-s3;
}
if(s2==3)
{
s4=s1*s3;
}
if(s2==4&&s3!=0)
{
s4=s1/s3;
}
if (s2==4&&s3==0)
{
s1=0;
s2=0;
s3=0;
s4=0;
s5=0;
}
String str2=s4+"";
tv_1.setText(str2);
s5=1;
s2=0;
s6=0;
}
}
class bt_c_onClick implements View.OnClickListener {
public void onClick(View v) {
s1=0;
s2=0;
s3=0;
s5=0;
s4=0;
s6=0;
tv_1.setText(null);
}
}
class bt_tui_onClick implements View.OnClickListener {
public void onClick(View v) { String str = tv_1.getText().toString();
if (str.length() == 0) {
return;
}
String str2 = str.substring(0, str.length() - 1);
tv_1.setText(str2);
if (s5 == 1) {
s5 = 0;
}
}
}
}
可实现计算器的基本运算功能
感谢@storm47给予我的帮助
Android——计算器的更多相关文章
- Android计算器简单逻辑实现
Android计算器简单逻辑实现 引言: 我的android计算器的实现方式是:按钮输入一次,就处理一次. 但是如果你学过数据结构(栈),就可以使用表达式解析(前缀,后缀)处理. 而这个方式已经很成熟 ...
- Android计算器布局
Android(安桌)计算器布局实现 ——解决整个屏幕方案 引言: 学完了android布局的几种方式,做了一个android计算器. 我在网上搜索了这方面的资料,发现了布局都 ...
- Android计算器尝试
学了一段时间Android了,一直都是在看,没有什么尝试,刚好最近大致学会了gridview配合simpleadpter的使用,于是想着动手练习一下,就选择了写一个最简单的计算器来实现. 只包含+-* ...
- java实现可有括号的android计算器
写了一个android版的计算器,可以计算带括号的表达式,不过前提是:正确的表达式才行 小缺陷是没有做表达式括号的控制,现在还没有想到好的控制方式 package javaAdvanced; impo ...
- Android计算器开发实例
Android简单计算器开发实例如图: ==================================================== activity_main.xml 代码如下: < ...
- 结对实验报告-android计算器设计
一:引言 目前手机可以说是普及率非常高的电子设备了,由于其便于携带,使用方便,资费适中等等原因,现在手机已经在一定程度开始代替固定电话的通话功能,以及一些原来电脑软件上的功能了.手机上的软件也随着 ...
- android计算器
一:引言 目前手机可以说是普及率非常高的电子设备了,由于其便于携带,使用方便,资费适中等等原因,现在手机已经在一定程度开始代替固定电话的通话功能,以及一些原来电脑软件上的功能了.手机上的软件也随 ...
- 【Android实验】UI设计-Android计算器
目录 实验目的 实验要求 实验过程 1. 界面设计 2. 功能设计 3. 运算处理 实验目的 自主完成一个简单APP的设计工作,综合应用已经学到的Android UI设计技巧,重点注意合理使用布局 实 ...
- Android 计算器
首先在activity_main.xml加入一个EditText 通过xml的方式来沈成一个图像在drawable中新建一个white_bg.xml文件,同时选择一个shape标签corners设置圆 ...
随机推荐
- 图解傅里叶变换(so easy)
话不多说先上两个GIF图. 第一个动画和第二个动画其实都是对时域的周期矩形形波(近似看成矩形波,并不是严格意义的矩形方波)进行傅里叶变换分析. 对于第一个图形来说,它侧重展示变换的本质之一:叠加性,每 ...
- [微软]technet与msdn
我们搜索一个微软术语,有时定位到technet页面,有时定位到msdn页面.我直观的理解就是technet教人们如何使用微软产品,而msdn指导人们如何开发基于微软产品的软件.那么微软对它们具体定位是 ...
- hadoop 常见问题
1.Eclipse 读取hdfs文件错误: java.io.IO Exception : Could not obtain block: blk_194219614024901469_1100 fi ...
- 项目管理软件---redmine安装配置
redmine是一个开源的项目管理软件,其主页是:http://www.redmine.org redmine是基于Ruby on Rails框架的,跨平台和跨数据库. 安装过程 ========== ...
- Screen对象
document.write("Screen-width:"+screen.width+"Screen-height:"+screen.height);docu ...
- 操作系统:cpu调度 6-25
1. 进程选择 1小时和1分钟? 进程优先1分钟,再执行1小时. 时间短的进程先执行,执行顺序也有关. 2. 遇到io操作,执行的进程先让出cpu,切换其他进程. 3.进程先来先服务,进程调度策略: ...
- stm32的串口接收字符串以十六进制数
#include "pbdata.h" uint8_t TxBuffer1[] = "USART Interrupt Example: This isUSART1 ...
- [TOP10]十大渗透测试演练系统
本文总结了目前网络上比较流行的渗透测试演练系统,这些系统里面都提供了一些实际的安全漏洞,排名不分先后,各位安全测试人员可以亲身实践如何利用这个漏洞,同时也可以学习到漏洞的相关知识. DVWA (Dam ...
- 认真对待每一道算法题 之 两个排序好的数组寻找的第k个大的数
转载博客:http://www.cnblogs.com/buptLizer/archive/2012/03/31/2427579.html 题目意思:给出两个排好序的数组 ,不妨设为a,b都按升序排列 ...
- WEB ui快速构建
http://www.runoob.com/bootstrap/bootstrap-ui-editor.html 1http://pingendo.com/ 2http://www.layoutit. ...