在Android平台上,编写一个计算器应用程序的Java源码通常涉及用户界面设计、事件处理和数学运算的实现。在这个特定的案例中,文件名为`MainActivity.java`,它属于`zj.com.yjy.calculator`包。`MainActivity`是基于`AppCompatActivity`类创建的,这意味着它继承了Android提供的Activity基类,并实现了`View.OnClickListener`接口,以便能够处理按钮点击事件。 代码的核心部分主要关注以下几个关键组件: 1. **变量声明**: - 定义了一系列Button对象,如`btn1`到`btn0`,分别对应数字键0-9,以及运算符键如`btn_add`(加)、`btn_sub`(减)、`btn_mul`(乘)、`btn_div`(除)、`btn_point`(小数点)、`btn_res`(结果)、`btn_del`(删除)和`btn_back`(后退)。 - 还有两个TextView对象,`text`用于显示当前输入的数值,`text_result`用于显示计算结果。 2. **onCreate()方法**: - 在这个方法中,首先调用父类的`onCreate()`方法,然后设置活动视图(通过`setContentView()`方法加载布局文件R.layout.activity_main),并初始化各个按钮和文本框。 3. **init()方法**: - 初始化方法负责设置每个Button的引用,通过`findViewById()`找到对应的布局中的控件。 4. **事件监听**: - 作为`OnClickListener`,`MainActivity`需要重写`onClick(View v)`方法,当用户点击任一按钮时,会根据按钮的ID识别出相应的操作,例如: - 数字键:将按键值添加到当前输入的字符串中或进行清零操作。 - 运算符键:执行相应的数学运算(如`btn_add`触发加法运算,`btn_sub`触发减法等)。 - 小数点键:在合适的位置插入小数点。 - 清除键:清除输入值或历史记录。 - 结果键:计算最终结果并显示在`text_result`上。 为了使用这个源码,开发者需要自定义一个布局文件(例如命名为`activity_main.xml`),并将文件中的按钮标签(如`<Button android:id="@+id/btn0" />`)与MainActivity中的按钮名对应。这样,当编译并运行应用程序时,用户界面将按照预期显示,并能正确响应用户的输入和计算请求。 这个源码提供了基础的计算器功能,但实际应用中可能还需要添加错误处理、支持括号、科学计数器等功能,以及可能的用户界面改进和国际化支持。开发者可以根据需求扩展和完善这个框架。
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import java.math.BigDecimal;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private Button btn1, btn2, btn3, btn4, btn5, btn6, btn7, btn8, btn9, btn0;//数字Button
private Button btn_res,btn_del, btn_back, btn_div, btn_mul, btn_sub, btn_add,btn_point;//符号Button
private TextView text, text_result;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
}
private void init() {
btn0 = (Button) findViewById(R.id.btn0);
btn0 = (Button) findViewById(R.id.btn0);
btn1 = (Button) findViewById(R.id.btn1);
btn2 = (Button) findViewById(R.id.btn2);
btn3 = (Button) findViewById(R.id.btn3);
btn5 = (Button) findViewById(R.id.btn5);
btn6 = (Button) findViewById(R.id.btn6);
btn7 = (Button) findViewById(R.id.btn7);
btn8 = (Button) findViewById(R.id.btn8);
btn9 = (Button) findViewById(R.id.btn9);
btn_res= (Button) findViewById(R.id.btn_res);
btn_add = (Button) findViewById(R.id.btn_add);
btn_back = (Button) findViewById(R.id.btn_back);
btn_del = (Button) findViewById(R.id.btn_del);
btn_div = (Button) findViewById(R.id.btn_div);
btn_mul = (Button) findViewById(R.id.btn_mul);
btn_sub = (Button) findViewById(R.id.btn_sub);
btn_point = (Button) findViewById(R.id.btn_point);
text = (TextView) findViewById(R.id.text);
text_result = (TextView) findViewById(R.id.text_result);
btn0.setOnClickListener(this);
btn1.setOnClickListener(this);
btn2.setOnClickListener(this);
btn3.setOnClickListener(this);
btn4.setOnClickListener(this);
btn5.setOnClickListener(this);
btn6.setOnClickListener(this);
btn7.setOnClickListener(this);
btn8.setOnClickListener(this);
btn9.setOnClickListener(this);
btn_res.setOnClickListener(this);
btn_del.setOnClickListener(this);
btn_back.setOnClickListener(this);
btn_add.setOnClickListener(this);
剩余8页未读,继续阅读
- 粉丝: 75
- 资源: 19
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 李兴华Java基础教程:从入门到精通
- U盘与硬盘启动安装教程:从菜鸟到专家
- C++面试宝典:动态内存管理与继承解析
- C++ STL源码深度解析:专家级剖析与关键技术
- C/C++调用DOS命令实战指南
- 神经网络补偿的多传感器航迹融合技术
- GIS中的大地坐标系与椭球体解析
- 海思Hi3515 H.264编解码处理器用户手册
- Oracle基础练习题与解答
- 谷歌地球3D建筑筛选新流程详解
- CFO与CIO携手:数据管理与企业增值的战略
- Eclipse IDE基础教程:从入门到精通
- Shell脚本专家宝典:全面学习与资源指南
- Tomcat安装指南:附带JDK配置步骤
- NA3003A电子水准仪数据格式解析与转换研究
- 自动化专业英语词汇精华:必备术语集锦