android studio实现简单的计算器小功能
作者:字睿洁 发布时间:2022-07-22 17:53:26
标签:android,studio,计算器
本文实例为大家分享了android studio实现简单计算器的具体代码,供大家参考,具体内容如下
布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
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"
android:orientation="vertical"
android:background="@color/white"
tools:context="com.example.jisuanqi.MainActivity">
<TextView
android:id="@+id/screenshow"
android:layout_width="match_parent"
android:layout_height="200dp"
android:background="@android:color/white"
android:textColor="@color/black"
android:textSize="50sp"/>
//各按键
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center">
<Button
android:layout_width="160dp"
android:layout_height="80dp"
android:text="÷"
android:textSize="45sp"
android:id="@+id/divide"
/>
<Button
android:layout_width="80dp"
android:layout_height="80dp"
android:text="×"
android:textSize="45sp"
android:id="@+id/times" />
<Button
android:layout_width="80dp"
android:layout_height="80dp"
android:text="C"
android:textSize="40sp"
android:id="@+id/button_C" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center">
<Button
android:layout_width="80dp"
android:layout_height="80dp"
android:text="7"
android:textSize="40sp"
android:id="@+id/button_7" />
<Button
android:layout_width="80dp"
android:layout_height="80dp"
android:text="8"
android:textSize="40sp"
android:id="@+id/button_8" />
<Button
android:layout_width="80dp"
android:layout_height="80dp"
android:text="9"
android:textSize="40sp"
android:id="@+id/button_9" />
<Button
android:layout_width="80dp"
android:layout_height="80dp"
android:text="+"
android:textSize="40sp"
android:id="@+id/button_add" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center">
<Button
android:layout_width="80dp"
android:layout_height="80dp"
android:text="4"
android:textSize="40sp"
android:id="@+id/button_4" />
<Button
android:layout_width="80dp"
android:layout_height="80dp"
android:text="5"
android:textSize="40sp"
android:id="@+id/button_5" />
<Button
android:layout_width="80dp"
android:layout_height="80dp"
android:text="6"
android:textSize="40sp"
android:id="@+id/button_6" />
<Button
android:layout_width="80dp"
android:layout_height="80dp"
android:text="-"
android:textSize="50sp"
android:id="@+id/button_minus" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center">
<Button
android:layout_width="80dp"
android:layout_height="80dp"
android:text="1"
android:textSize="40sp"
android:id="@+id/button_1" />
<Button
android:layout_width="80dp"
android:layout_height="80dp"
android:text="2"
android:textSize="40sp"
android:id="@+id/button_2" />
<Button
android:layout_width="80dp"
android:layout_height="80dp"
android:text="3"
android:textSize="40sp"
android:id="@+id/button_3" />
<Button
android:layout_width="80dp"
android:layout_height="80dp"
android:text="."
android:textSize="45sp"
android:id="@+id/button_dot" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center">
<Button
android:layout_width="160dp"
android:layout_height="80dp"
android:text="0"
android:textSize="40sp"
android:id="@+id/button_0" />
<Button
android:layout_width="160dp"
android:layout_height="80dp"
android:text="="
android:textSize="45sp"
android:id="@+id/button_equal" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
java代码:
package com.example.jisuanqi;
import android.support.v4.app.INotificationSideChannel;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.app.Activity;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity {
private TextView windowshow;
private Button but_0,but_1,but_2,but_3,but_4,but_5,but_6,but_7,but_8,but_9,but_C,divide,
multiply,but_add,but_minus,but_dot,but_equal;
double first_num=0,second_num=0;
double result=0;
int operation=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
windowshow=(TextView)findViewById(R.id.screenshow);
but_0=(Button)findViewById(R.id.button_0);
but_0.setOnClickListener(new MyOnClickListener());
but_1=(Button)findViewById(R.id.button_1);
but_1.setOnClickListener(new MyOnClickListener());
but_2=(Button)findViewById(R.id.button_2);
but_2.setOnClickListener(new MyOnClickListener());
but_3=(Button)findViewById(R.id.button_3);
but_3.setOnClickListener(new MyOnClickListener());
but_4=(Button)findViewById(R.id.button_4);
but_4.setOnClickListener(new MyOnClickListener());
but_5=(Button)findViewById(R.id.button_5);
but_5.setOnClickListener(new MyOnClickListener());
but_6=(Button)findViewById(R.id.button_6);
but_6.setOnClickListener(new MyOnClickListener());
but_7=(Button)findViewById(R.id.button_7);
but_7.setOnClickListener(new MyOnClickListener());
but_8=(Button)findViewById(R.id.button_8);
but_8.setOnClickListener(new MyOnClickListener());
but_9=(Button)findViewById(R.id.button_9);
but_9.setOnClickListener(new MyOnClickListener());
but_add=(Button)findViewById(R.id.button_add);
but_add.setOnClickListener(new MyOnClickListener());
but_C=(Button)findViewById(R.id.button_C);
but_C.setOnClickListener(new MyOnClickListener());
divide=(Button)findViewById(R.id.divide);
divide.setOnClickListener(new MyOnClickListener());
but_dot=(Button)findViewById(R.id.button_dot);
but_dot.setOnClickListener(new MyOnClickListener());
but_equal=(Button)findViewById(R.id.button_equal);
but_equal.setOnClickListener(new MyOnClickListener());
but_minus=(Button)findViewById(R.id.button_minus);
but_minus.setOnClickListener(new MyOnClickListener());
multiply=(Button)findViewById(R.id.times);
multiply.setOnClickListener(new MyOnClickListener());
}
class MyOnClickListener implements View.OnClickListener{
public void onClick(View v){
switch (v.getId()){
case R.id.button_C:
windowshow.setText(null);
break;
case R.id.button_0:
String str0=windowshow.getText().toString();
str0+="0";
windowshow.setText(str0);
break;
case R.id.button_1:
String str1=windowshow.getText().toString();
str1+="1";
windowshow.setText(str1);
break;
case R.id.button_2:
String str2=windowshow.getText().toString();
str2+="2";
windowshow.setText(str2);
break;
case R.id.button_3:
String str3=windowshow.getText().toString();
str3+="3";
windowshow.setText(str3);
break;
case R.id.button_4:
String str4=windowshow.getText().toString();
str4+="4";
windowshow.setText(str4);
break;
case R.id.button_5:
String str5=windowshow.getText().toString();
str5+="5";
windowshow.setText(str5);
break;
case R.id.button_6:
String str6=windowshow.getText().toString();
str6+="6";
windowshow.setText(str6);
break;
case R.id.button_7:
String str7=windowshow.getText().toString();
str7+="7";
windowshow.setText(str7);
break;
case R.id.button_8:
String str8=windowshow.getText().toString();
str8+="8";
windowshow.setText(str8);
break;
case R.id.button_9:
String str9=windowshow.getText().toString();
str9+="9";
windowshow.setText(str9);
break;
case R.id.button_dot:
String strdot=windowshow.getText().toString();
strdot+=".";
windowshow.setText(strdot);
break;
case R.id.button_add:
String stradd=windowshow.getText().toString();
if(stradd.equals(null)){
return;
}
first_num=Double.valueOf(stradd);
stradd+="+";
windowshow.setText(null);
operation=1;
break;
case R.id.button_minus:
String strminus=windowshow.getText().toString();
if(strminus.equals(null)){
return;
}
first_num=Double.valueOf(strminus);
strminus+="-";
windowshow.setText(null);
operation=2;
break;
case R.id.times:
String strmultiply=windowshow.getText().toString();
if(strmultiply.equals(null)){
return;
}
first_num=Double.valueOf(strmultiply);
strmultiply+="*";
windowshow.setText(null);
operation=3;
break;
case R.id.divide:
String strdivide=windowshow.getText().toString();
if(strdivide.equals(null)){
return;
}
first_num=Double.valueOf(strdivide);
strdivide+="/";
windowshow.setText(null);
operation=4;
break;
case R.id.button_equal:
String strequ=windowshow.getText().toString();
second_num=Double.valueOf(strequ);
// windowshow.setText(null);
switch (operation){
case 1:
result=first_num+second_num;
windowshow.setText(String.valueOf(first_num)+"+"+String.valueOf(second_num)+"="+String.valueOf(result));
break;
case 2:
result=first_num-second_num;
windowshow.setText(String.valueOf(first_num)+"-"+String.valueOf(second_num)+"="+String.valueOf(result));
break;
case 3:
result=first_num*second_num;
windowshow.setText(String.valueOf(first_num)+"×"+String.valueOf(second_num)+"="+String.valueOf(result));
break;
case 4:
if(second_num==0){
windowshow.setText("被除数不能为0!");
}
else {
result = first_num / second_num;
windowshow.setText(String.valueOf(first_num) + "÷" + String.valueOf(second_num) + "=" + String.valueOf(result));
}
break;
case 5:
result=first_num/100;
windowshow.setText(String.valueOf(first_num) + "%" +"="+String.valueOf(result));
break;
default:
result=0;
break;
}
}
}
}
}
效果图:
来源:https://blog.csdn.net/a22235/article/details/117751884


猜你喜欢
- Spring注入方式可以分为三类,xml注入、注解注入、BeanDefinition注入;用法上可以分为三种,但是底层实现代码都是统一Bea
- 前言Java8新特性java.time.*包学习。 自从java发布模式变更就发现自己有些跟不上他们的速度,java8还有不少没有用透而9、
- 最近做了微信公众号支付的开发,由于是第一次做也摸索了几天的时间,也只是达到了实现功能的水平,并没有太多考虑到性能问题,所以这篇文章比较适合初
- 使用INI配置文件,简单便捷。该辅助工具类为C#操作INI文件的辅助类,源码在某位师傅的基础上完善的来,因为忘记最初的来源了,因此不能提及引
- 一般来说C#在不安装Excel软件的情况下,可以通过XML来创建Excel文档。因此,运行本文所述代码您无需安装Excel程序。本文原例子是
- 本文实例为大家分享了java读取excel文件的具体代码,供大家参考,具体内容如下方式一:借用package com.ij34.util;/
- Java 理解 ThreadLocal摘要: ThreadLocal 又名线程局部变量,是 Java 中一种较为特殊的线程绑定机制,用于保证
- 有经验的开发人员都知道在开发.NET应用时可以利用配置文件保存一些常用并且有可能变化的信息,例如日志文件的保存路径、数据库连接信息等等,这样
- 目录概述ClassPoolCtClassCtMthodCtFieldCtConstructorClassPathClassLoader示例创
- SurfaceViewSurfaceView从源码上看继承自View,但在内部实现上SurfaceView和其他View有很多区别。 Sur
- springMVC项目中实现图形验证码功能,可以使用kaptcha来实现,下面是步骤一、引入架包,pom.xml<dependency
- 背景在我们实际生产容器化部署过程中,往往会遇到 Docker 镜像很大,部署发布很慢的情况影响 docker 镜像大小的因素,主要有以下三个
- 本文实例为大家分享了android实现注册登录程序的具体代码,供大家参考,具体内容如 * 册页面:user_register.xml:<
- 对于很多开发人员来说,炫酷的UI效果是最吸引他们注意力的,很多人也因为这些炫酷的效果而去学习一些比较知名的UI库。而做出炫酷效果的前提是你必
- 一. 为什么要使用接口假如有一个需求:要求实现防盗门的功能。门有"开"和"关"的功能,锁有"
- 本文主要介绍了C# WinForm状态栏实时显示当前时间(窗体状态栏StatusStrip示例),分享给大家,具体如下:实现效果:通过Sta
- 一、前言Android 实现卫星式菜单也叫弧形菜单,主要要做的工作如下:1.动画的处理2.自定义ViewGroup来实现卫星式菜单View(
- 算法如下: 基姆拉尔森计算公式W= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400) mod 7 在公式中
- //构造文件File类File f=new File(fileName);//判断是否为目录f.isDirectory();//获取目录下的
- 本文内容大多基于官方文档和网上前辈经验总结,经过个人实践加以整理积累,仅供参考。1、日期时间字符串转换成毫秒@Testpublic void