Android学习之路(1)——计算器——2017_01_09
来源:互联网 发布:三国志11古武将数据 编辑:程序博客网 时间:2024/05/18 18:04
本人菜鸟一只,现在的我读大三,临近毕业,自己是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
- Android学习之路(1)——计算器——2017_01_09
- Android学习—计算器实现
- Android学习1——计算器
- 蜗牛—JQuery学习之简易计算器
- 蜗牛—JavaScript学习之简易计算器
- Qt—学习之我的计算器
- Android学习2——计算器
- JAVA学习之简单计算器——V1.0
- Android处女作——计算器
- android—小小的计算器
- PHP学习实例—1(简易计算器)
- Android案例(1)——一个简单的计算器
- Android 从小白到大拿之路——计算器显示框的设置
- Android 从小白到大拿之路——计算器_修改按钮样式
- Android 从小白到大拿之路——简单计算器最终的实现
- Android学习-计算器1
- 菜鸟学习Struts——简易计算器
- java 学习 ——计算器小程序
- 【java多线程】【生产者与消费者】【JDK5.0升级版】
- 关于 android 中 postDelayed方法的讲解
- Android视频的放大和缩小
- 802.11ax前瞻1:协议简介
- ImportError: No module named cv2 最新ubuntu opencv
- Android学习之路(1)——计算器——2017_01_09
- 通过缓存来实现网络图片的下载,通过RecyclerView和ViewPaper来展示出来
- 【JZOJ3809】设备塔
- My97DatePicker日期范围限制
- 经济学名词解析
- python lambda
- 有关栈和队--未完
- 框架hibernate的使用(数据库增删改查、hql)
- PROTOBUF 的错误 也许是GCC版本不对,现在我用的是GCC4.9出现错误。可能要用GCC5才能解决问题