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设置圆 ...
随机推荐
- C++中的容器类详解
一.STL容器类 STL(Standard Template Library)的六大组件:容器(containers).迭代器(iterators).空间配置器(allocator).配接器(adap ...
- Javascript基础--成员函数(六)
成员函数:也叫方法 1.常用方法 比如:我们希望对象不但有属性,还希望他有行为.(行为在程序中要靠函数来体现)(1) 添加speak函数,输出我是一个好人 (2) 添加jisuan函数,可以计算从1+ ...
- 内部类中class声明地方不同,效果不一样
1.一个声明在类中,一个声明在类的方法中.在类中的方法中声明内部类,其方法中的内部类调用 内部类外中的变量,变量必须final class Outter{ int x1 = 0; public voi ...
- 转:115个Java面试题和答案——终极列表(上)
转自:http://www.importnew.com/10980.html 本文我们将要讨论Java面试中的各种不同类型的面试题,它们可以让雇主测试应聘者的Java和通用的面向对象编程的能力.下面的 ...
- poj2649 数论
//Accepted 420K 16MS //考虑 0和n! does not divide // 1和0! divides #include <cstdio> #include < ...
- 03-树2 Tree Traversals Again
这题是第二次做了,两次都不是独立完成,不过我发现我第一次参考的程序,也是参考老师(陈越)的范例做出来的.我对老师给的做了小幅修改,因为我不想有全局变量的的存在,所以我多传了三个参数进去.正序遍历每次都 ...
- DDOS攻击原理及防护方法论
从 07年的爱沙尼亚DDOS信息战,到今年广西南宁30个网吧遭受到DDOS勒索,再到新浪网遭受DDOS攻击无法提供对外服务500多分钟. DDOS愈演愈烈,攻击事件明显增多,攻击流量也明显增大,形 ...
- html<textarea>标签
最近在项目中页面回显<textarea>的值,可是设置了value属性怎么也回显不出来,后来才弄清楚,原来想要设置<textarea>的文本,不是使用value,而是如下方式: ...
- (spring-第7回【IoC基础篇】)BeanDefinition的载入与解析&&spring.schemas、spring.handlers的使用
报错信息:Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace [http: ...
- Ubuntu安装软件提示”需要安装不能信任的软件包”解决办法
用 Ubuntu 安装输入法软件包时提示"需要安装不能信任的软件包","这个动作需要从没有授权的软件源来安装软件包",赋予权限执行仍然无法安装,上网查了一下,只 ...