Android学习之路(1)——计算器——2017_01_09

本人菜鸟一只,现在的我读大三,临近毕业,自己是Android爱好者, 这将是我发表的第一篇关于Android的博客,以后持续更新,给大家提供本人对Android的理解的同时也激励自己时刻努力进步。文章中有什么写的不好的地方大家可以在留言区提出来,我会听取大家的宝贵意见的。

Android计算器程序简单,适合了解了Android的基本语法的人,核心算法就是 s=a+b,s=a-b,s=a*b,s=a/b;其他的内容就是帮助刚入门Android的同学了解和巩固Android最基础的语法。

我是用现在最新的Android Studio2.2开发的,下面附上资源链接。

计算器源代码下载页链接

首先创建一个空的工程,然后按照如下图片做出界面
这里写图片描述

这里是activity_main.xml的代码
//下面这块跟根据自己的电脑上生成的来,无需照抄
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.tigermini.calculater.MainActivity">

//下面的代码就是构成视图的部分,要注意每部分的id
    <Button
        android:text="+"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/button09"
        android:layout_toEndOf="@+id/button06"
        android:id="@+id/button_add"
        android:layout_alignTop="@+id/button09" />

    <Button
        android:text="2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/button01"
        android:layout_toEndOf="@+id/button01"
        android:id="@+id/button02" />

    <Button
        android:text="3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/button02"
        android:layout_toEndOf="@+id/button02"
        android:id="@+id/button03" />

    <Button
        android:text="C"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/button00"
        android:layout_toEndOf="@+id/button00"
        android:id="@+id/button_clear" />

    <Button
        android:text="="
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/button_clear"
        android:layout_toEndOf="@+id/button_clear"
        android:id="@+id/button_equality" />

    <Button
        android:text="1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/button01"
        android:layout_above="@+id/button00"
        android:layout_alignParentStart="true" />

    <Button
        android:text="4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/button04"
        android:layout_above="@+id/button02"
        android:layout_alignParentStart="true" />

    <Button
        android:text="5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/button05"
        android:layout_above="@+id/button02"
        android:layout_toEndOf="@+id/button04" />

    <Button
        android:text="6"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/button06"
        android:layout_above="@+id/button03"
        android:layout_toEndOf="@+id/button05" />

    <Button
        android:text="7"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/button07"
        android:layout_above="@+id/button05"
        android:layout_alignParentStart="true" />

    <Button
        android:text="8"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/button08"
        android:layout_above="@+id/button05"
        android:layout_toEndOf="@+id/button04" />

    <Button
        android:text="9"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/button09"
        android:layout_above="@+id/button_minus"
        android:layout_toEndOf="@+id/button05" />

    <Button
        android:text="0"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/button00"
        android:layout_marginBottom="40dp"
        android:layout_alignParentBottom="true"
        android:layout_alignParentStart="true" />

    <Button
        android:text="*"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/button_multiply"
        android:layout_above="@+id/button_division"
        android:layout_toEndOf="@+id/button03" />

    <Button
        android:text="-"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/button_minus"
        android:layout_alignBaseline="@+id/button06"
        android:layout_alignBottom="@+id/button06"
        android:layout_alignParentEnd="true"
        android:layout_toEndOf="@+id/button03" />

    <Button
        android:text="/"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/button_division"
        android:layout_alignBaseline="@+id/button_equality"
        android:layout_alignBottom="@+id/button_equality"
        android:layout_toEndOf="@+id/button03" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/tv"
        android:textSize="30dp"
        android:layout_alignParentTop="true"
        android:layout_alignParentStart="true"
        android:layout_marginTop="91dp"
        android:layout_alignParentEnd="true" />

</RelativeLayout>

本程序只有一个.java类,下面是源代码。

package com.example.tigermini.calculater;

import android.provider.Settings;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
    TextView tv;
    int[] buttons;
    int result;
    int result0;
    int result1;
    Button button_add;
    Button button_minus;
    Button button_multiply;
    Button button_division;
    Button button_equality;
    Button button_clear;
    String str1;
    String str2;
    int flag=0;
    Button temp;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initButton();               //初始化按钮
        button_clear.setOnClickListener(
                new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        str1 = "";
                        str2 = "";
                        tv.setText(str1);
                        flag = 0;
                    }
                }
        );

        //监听
        for (int i=0;i<buttons.length;i++){
            temp=(Button)findViewById(buttons[i]);
            temp.setOnClickListener(
                    new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            str1=tv.getText().toString().trim();
                            str1=str1+String.valueOf(((Button)v).getText());           //获得新输入的值
                            System.out.println("str1"+":::"+str1);
                            tv.setText(str1);
                        }
                    }
            );
        }
        buttonListener(button_add,1);
        buttonListener(button_minus,2);
        buttonListener(button_multiply,3);
        buttonListener(button_division,4);

        //核心算法
        button_equality.setOnClickListener(
                new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        System.out.println(str1);
                        result1=Integer.parseInt(str1);
                        if(flag==1){
                            result=result0+result1;
                            System.out.println(result0+":"+result1);
                        }
                        else if(flag==2){
                            result=result0-result1;
                        }
                        else if(flag==3){
                            result=result0*result1;
                        }
                        else if(flag==4){
                            result=result0/result1;
                        }
                        String str=(result+"").trim();
                        System.out.println(str);
                        tv.setText(str);
                    }
                }
        );
    }


        //初始化按钮
        public void initButton(){
        tv=(TextView)this.findViewById(R.id.tv);
        str1=String.valueOf(tv.getText());
        str2="";
        button_add=(Button)this.findViewById(R.id.button_add);
        button_clear=(Button)this.findViewById(R.id.button_clear);
        button_division=(Button)this.findViewById(R.id.button_division);
        button_equality=(Button)this.findViewById(R.id.button_equality);
        button_minus=(Button)this.findViewById(R.id.button_minus);
        button_multiply=(Button)this.findViewById(R.id.button_multiply);
        buttons=new int[]{
                R.id.button00,R.id.button01,R.id.button02,R.id.button03,R.id.button04,R.id.button05,
                R.id.button05,R.id.button06,R.id.button07,R.id.button08,R.id.button09
        };
    }

    //按钮监听
    public void buttonListener(Button button,final int id){
        button.setOnClickListener(
                new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        String str=tv.getText().toString().trim();
                        result0=Integer.parseInt(str);
                        tv.setText("");
                        flag=id;
                    }
                }
        );
    }


}

上面就是我的一个简单的计算器程序了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值