本人菜鸟一只,现在的我读大三,临近毕业,自己是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;
}
}
);
}
}
上面就是我的一个简单的计算器程序了。