关闭

写了一个简易计算器

标签: android布局计算器
227人阅读 评论(0) 收藏 举报
分类:

这里写图片描述

  • 功能:能做简单的加减乘除运算。但是只能运算一次…………不能连续运算。

  • 布局源码
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.a.MainActivity" >

    <TableLayout 
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:weightSum="7">


        <TextView
            android:id="@+id/tv"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="3"
            android:text="" 
            android:textSize="24sp"/>

        <TableRow
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1" >

            <Button
                android:id="@+id/one"
                android:layout_width="wrap_content"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:text="1" />

            <Button
                android:id="@+id/two"
                android:layout_width="wrap_content"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:text="2" />

            <Button
                android:id="@+id/three"
                android:layout_width="wrap_content"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:text="3" />

            <Button
                android:id="@+id/add"
                android:layout_width="wrap_content"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:text="+" />
        </TableRow>
          <TableRow
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_span="4"
            android:layout_weight="1" >

            <Button
                android:id="@+id/four"
                android:layout_width="wrap_content"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:text="4" />

            <Button
                android:id="@+id/five"
                android:layout_width="wrap_content"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:text="5" />

            <Button
                android:id="@+id/six"
                android:layout_width="wrap_content"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:text="6" />

            <Button
                android:id="@+id/remove"
                android:layout_width="wrap_content"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:text="-" />
        </TableRow>

           <TableRow
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1" >

            <Button
                android:id="@+id/seven"
                android:layout_width="wrap_content"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:text="7" />

            <Button
                android:id="@+id/eight"
                android:layout_width="wrap_content"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:text="8" />

            <Button
                android:id="@+id/nine"
                android:layout_width="wrap_content"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:text="9" />

            <Button
                android:id="@+id/x"
                android:layout_width="wrap_content"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:text="x" />
        </TableRow>

        <TableRow
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1" >

            <Button
                android:id="@+id/zero"
                android:layout_width="wrap_content"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:text="0" />
            <Button 
                android:id="@+id/qingchu"
                android:layout_width="wrap_content"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:text="C"/>

            <Button
                android:id="@+id/deng"
                android:layout_width="wrap_content"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:text="=" />

            <Button
                android:id="@+id/chu"
                android:layout_width="wrap_content"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:text="/" />
        </TableRow>
    </TableLayout>

</RelativeLayout>
  • 逻辑源码
package com.example.a;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends Activity implements OnClickListener {

    public StringBuffer sb = new StringBuffer();//用于将每次按键按下的值连起来
    private int number = 0;//计数器:按下+为0;按下-为1;按下x为3;按下/为3;
    private TextView tv_xs;
    public long resultnum = 0;//结果值

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        tv_xs = (TextView) findViewById(R.id.tv);
        Button one = (Button) findViewById(R.id.one);
        Button two = (Button) findViewById(R.id.two);
        Button three = (Button) findViewById(R.id.three);
        Button four = (Button) findViewById(R.id.four);
        Button five = (Button) findViewById(R.id.five);
        Button six = (Button) findViewById(R.id.six);
        Button seven = (Button) findViewById(R.id.seven);
        Button eight = (Button) findViewById(R.id.eight);
        Button nine = (Button) findViewById(R.id.nine);
        Button zero = (Button) findViewById(R.id.zero);
        Button add = (Button) findViewById(R.id.add);//加
        Button chu = (Button) findViewById(R.id.chu);//除
        Button remove = (Button) findViewById(R.id.remove);//减
        Button deng = (Button) findViewById(R.id.deng);//等号
        Button x = (Button) findViewById(R.id.x);//乘
        Button qingchu =(Button)findViewById(R.id.qingchu);//清零
        one.setOnClickListener(this);
        two.setOnClickListener(this);
        three.setOnClickListener(this);
        four.setOnClickListener(this);
        five.setOnClickListener(this);
        six.setOnClickListener(this);
        seven.setOnClickListener(this);
        eight.setOnClickListener(this);
        nine.setOnClickListener(this);
        zero.setOnClickListener(this);
        add.setOnClickListener(this);
        chu.setOnClickListener(this);
        remove.setOnClickListener(this);
        deng.setOnClickListener(this);
        x.setOnClickListener(this);
        qingchu.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        try {
            switch (v.getId()) {
            case R.id.one:
                int one = 1;
                sb.append(one);
                tv_xs.setText(sb.toString());
                break;
            case R.id.two:
                int two = 2;
                sb.append(two);
                tv_xs.setText(sb.toString());
                break;
            case R.id.three:
                int three = 3;
                sb.append(three);
                tv_xs.setText(sb.toString());
                break;
            case R.id.four:
                int four = 4;
                sb.append(four);
                tv_xs.setText(sb.toString());
                break;

            case R.id.five:
                int five = 5;
                sb.append(five);
                tv_xs.setText(sb.toString());
                break;

            case R.id.six:
                int six = 6;
                sb.append(six);
                tv_xs.setText(sb.toString());
                break;

            case R.id.seven:
                int seven = 7;
                sb.append(seven);
                tv_xs.setText(sb.toString());
                break;
            case R.id.eight:
                int eight = 8;
                sb.append(eight);
                tv_xs.setText(sb.toString());
                break;
            case R.id.nine:
                int nine = 9;
                sb.append(nine);
                tv_xs.setText(sb.toString());
                break;
            case R.id.zero:
                int zero = 0;
                sb.append(zero);
                tv_xs.setText(sb.toString());
                break;
            case R.id.add:
                tv_xs.setText("+");
                resultnum = Long.valueOf(sb.toString());
                sb.delete(0, sb.length());
                number = 0;
                break;
            case R.id.remove:
                tv_xs.setText("-");
                resultnum = Long.valueOf(sb.toString());
                sb.delete(0, sb.length());
                number = 1;
                break;
            case R.id.x:
                tv_xs.setText("x");
                resultnum = Long.valueOf(sb.toString());
                sb.delete(0, sb.length());
                number = 2;
                break;
            case R.id.chu:
                tv_xs.setText("%");
                resultnum = Long.valueOf(sb.toString());
                sb.delete(0, sb.length());
                number = 3;
                break;
            case R.id.deng:
                long deng_long = Long.valueOf(sb.toString());
                switch (number) {
                case 0:
                    long relust0 = resultnum + deng_long;
                    tv_xs.setText(relust0 + "");
                    break;
                case 1:
                    long relust1 = resultnum - deng_long;
                    tv_xs.setText(relust1 + "");
                    break;
                case 2:
                    long relust2 = resultnum * deng_long;
                    tv_xs.setText(relust2 + "");
                    break;
                case 3:
                    long relust3 = resultnum / deng_long;
                    tv_xs.setText(relust3 + "");
                    break;

                default:
                    break;
                }
                sb.delete(0, sb.length());
                break;
            case R.id.qingchu:
                tv_xs.setText("");
                sb.delete(0, sb.length());
                break;
            default:
                break;
            }
        } catch (Exception e) {
            // TODO: handle exception
            tv_xs.setText("");
        }

    }
}
0
0
查看评论

闲来无事,写了个简易计算器

题目如下: 计算器能进行加、减、乘、除运算。要求从键盘输入指令及操作数,如:add 3 26 //计算3+26的值,并返回结果 #include #include #include int add(int x,int y) { return x+y; } int sub...
  • jiamantuo
  • jiamantuo
  • 2016-11-15 21:59
  • 131

jsp之一个简单的计算器

知识点: 1. 如何接收jsp页面提交的数据,并处理 2. jsp中如何使用java片段 3. jsp中如何使用javascript完成对数据合法性的校验效果展示: <!-- 这是一个简单计算器的界面 --> <%@ page contentType=&q...
  • kaikai_sk
  • kaikai_sk
  • 2016-11-05 18:05
  • 323

C语言制作一个简易的计算器(加、减、乘、除、取模)

C语言制作一个简易的计算器(加、减、乘、除、取模) #include int main() { double number1=0.0; double number2=0.0; char operation=0; a: printf("请输入需要...
  • qq_32173603
  • qq_32173603
  • 2015-10-27 21:07
  • 1392

一个简易计算器

计算器 function count(){ var a=document.getElementById("txt1").value; var b=document.getElementById("txt2").val...
  • Mr_HuangJW
  • Mr_HuangJW
  • 2016-11-30 21:13
  • 182

设计一个简易计算器

#include int main() { int a,b,s; char c; scanf("%d %c %d",&a,&c.&b); switch(c) { case'+'; s =a+b; break; ...
  • ygluui14159260
  • ygluui14159260
  • 2017-04-22 23:05
  • 96

JavaScript编写简易计算器

一、前言 在看DRP视频的过程中,再次复习到了HTML、CSS、JavaScript。下面做一个简易计算器来复习一下相关知识。 二、HTML应用 首先呢,就是使用HTML画页面,咱们应该先把计算器的大概模样画出来,至于长相如何,尚且不管。         ...
  • qq_26545305
  • qq_26545305
  • 2017-02-14 16:30
  • 646

Android实现简单的计算器

android
  • pan861190079
  • pan861190079
  • 2016-07-07 20:14
  • 6731

20170918_chr_calActionchr Struts2实现简易计算器

Struts2实现简易计算器 /20170918_chr_calActionchr/src/nuc/sw/action/CalAction.java package nuc.sw.action;import com.opensymphony.xwork2.ActionContext; import ...
  • qq_34101492
  • qq_34101492
  • 2017-12-13 13:17
  • 38

设计模式之一:简单工厂模式,用python实现简易计算器

设计模式之一:简单工厂模式,用python实现简易计算器听说写技术博客对别人对自己都有好处,于是从这里开始写第一篇博客,记录自己的学习历程。由于编程功底很薄弱(对于代码的不足或错误,欢迎大家批评指正),最近自学Python,想做些小项目练练手,发现程杰写的大话设计模式这书不错,适合新手入门。开始这本...
  • VincentLuo91
  • VincentLuo91
  • 2015-10-25 15:34
  • 1126

大一C语言结课设计之《简单计算器》

/*===============================================*\ ** 设计目的:简单计算器,计算形如10*(20.2-30.6)+5.0/2的表达式值 ** 简要原理:中缀式转逆波兰式(后缀式) ** IDE:Dev-Cpp 4.9.9.2 ** 注意事项:括...
  • u012846486
  • u012846486
  • 2014-06-18 19:34
  • 2473
    个人资料
    • 访问:3957次
    • 积分:111
    • 等级:
    • 排名:千里之外
    • 原创:7篇
    • 转载:0篇
    • 译文:0篇
    • 评论:2条
    文章分类