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设置圆 ...
随机推荐
- CSS盒子模型和IE浏览器
CSS盒模型图解 下面是一幅关于应用了CSS的元素是如何显示它的尺寸的图示. 在本篇文章中,所有的浏览器在计算盒模型总宽度时处理margin属性的方式都是一致的,所以我们将更多的精力放在padding ...
- Windows平台下的读写锁
Windows平台下的读写锁简单介绍Windows平台下的读写锁以及实现.背景介绍Windows在Vista 和 Server2008以后才开始提供读写锁API,即SRW系列函数(Initialize ...
- matlab调用opencv函数的配置
环境: VS2010 活动解决方案平台x64 WIN 8.1 Opencv 2.4.3 Matlab 2012a 1. 首先保证vs2010能正确调用opencv函数, 2. Matlab中选择编 ...
- mybatis中oracle in>1000的处理
oracle数据库中,如果你使用in,然后括号对应的是一个子查询,当查询出来的结果>1000的时候就会报错. 这个是数据库的规定,我们无法改变它. 如何解决这个问题呢? 现在我看到了三种解决方式 ...
- 标签工作区(navtab)
B-JUI使用标签可以加载其他页面的数据 B-JUI框架的整个工作区部分就是一个navtab组件,本页面位于"#bjui-container"容器内,固定的html结构如下: &l ...
- Android模拟器配置选项说明
Memory Options是模拟器的运行内存大小,类比电脑内存大小,就是在设置->应用程序中,正在运行标签页下面显示的那个大小Internal storage是模拟器内置存储空间大小,用于存放 ...
- hdu 1069
//Accepted 264 KB 0 ms //每种block只有三种方法,且每种放法至多放一次 //规定三条边的顺序后 //把所有的block按x递增排序,x相同则按y递增排序 //然后dp // ...
- spring mvc + freemarker优雅的实现邮件定时发送
1. spring mvc工程中引入相关freemarker\mail的包 如:pom.xml中加入类似 <dependency> <groupId>javax.mail< ...
- 数据结构《13》----二叉树 Morris 前序遍历
三种二叉树的后序遍历的方法: 1. 递归 O(n) 时间复杂度, O(n) 空间复杂度 2. 迭代(用栈) O(n) 时间复杂度, O(n) 空间 ...
- iOS App提交指南-协议、税务和银行业务
App通过审核时,选择的是手动发布,想着等到自己生日那天来发布,当做留个纪念,结果生日当天发布时,由于App属于收费应用,还需要填写协议.税务和银行信息,结果又急急忙忙地去找了下这方面的资料,现在把整 ...