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设置圆 ...
随机推荐
- Thread IsBcakgroud
C#中,Thread类有一个IsBackground 的属性.MSDN上对它的解释是:获取或设置一个值,该值指示某个线程是否为后台线程.个人感觉这样的解释等于没有解释. .Net中的线程,可以分为后台 ...
- goldengate 12c对teradata的支持
OGG12c在2014.4.24发布了对TD的最新支持版本,软件可在此下载:https://edelivery.oracle.com.新版本特性如下: 当前支持TD 14.1的捕获和交付,仍然基于Te ...
- Linux下进程的建立
Linux下进程的建立 我们都知道,进程就是正在执行的程序.而在Linux中,可以使用一个进程来创建另外一个进程.这样的话,Linux的进程的组织结构其实有点像Linux目录树,是个层次结构的,可以使 ...
- POJ 3156 - Interconnect (概率DP+hash)
题意:给一个图,有些点之间已经连边,现在给每对点之间加边的概率是相同的,问使得整个图连通,加边条数的期望是多少. 此题可以用概率DP+并查集+hash来做. 用dp(i,j,k...)表示当前的每个联 ...
- Html.ActionLink , Url.Action
也来总结一下 以后省的忘了 都是从controller中获取到action名字返回 html.actionlink 返回的是带<a> 标签的超链接 url.action 是返回正常cont ...
- 2016-1-9 Quartz框架的学习,写字板demo
一:自定义view .h文件中代码如下 #import <UIKit/UIKit.h> @interface ZLpaintView : UIView @property(nonatomi ...
- 升级IOS 9 和 XCode 7 引起的问题
问题一: 升级xcode 7最低的系统配置要求 升级了ios9 后使用 xcode 6.1 已经不能用了,必须升级 xcode 7才行,原先的系统是OSX 10.10.1 版本.而xcode 7.0 ...
- XML JSON解析--基本功能
一,json的解析 json文件: {"code": "cn","cities": [{"name": " ...
- 程序员是怎么炼成的---OC题集--练习答案与题目(3)
1.init 2.initWithBytes:length:encoding: 3.initWithCharacters:length: 4.initWithCString:encoding: 5.i ...
- 解决input之间的空隙
<!doctype html> <html> <head> <meta charset="UTF-8"> <meta name ...