android实操--练习2
练习2是实现一个计算器的功能;可以加减乘除;可以倒退,可以清空文本。
下面是效果展示:
-----------------------布局-------------------------------
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<LinearLayout android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/tvResult"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:height="50dp"
android:text="@string/tvResult"
/>
</LinearLayout>
<LinearLayout android:layout_width="fill_parent"
android:layout_height="wrap_content">
<Button
android:id="@+id/btnBackspace"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:width="150dp"
android:layout_marginLeft="10dp"
android:text="@string/btnbackspace"/>
<Button
android:id="@+id/btnCE"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:width="150dp"
android:text="@string/btnCE"/>
</LinearLayout>
<LinearLayout android:layout_width="fill_parent"
android:layout_height="wrap_content">
<Button
android:id="@+id/btn7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:width="75dp"
android:text="@string/btn7"/>
<Button
android:id="@+id/btn8"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:width="75dp"
android:text="@string/btn8"/>
<Button
android:id="@+id/btn9"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:width="75dp"
android:text="@string/btn9"/>
<Button
android:id="@+id/btnDiv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:width="75dp"
android:text="@string/btnDiv"/>
</LinearLayout>
<LinearLayout android:layout_width="fill_parent"
android:layout_height="wrap_content">
<Button
android:id="@+id/btn4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:width="75dp"
android:text="@string/btn4"/>
<Button
android:id="@+id/btn5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:width="75dp"
android:text="@string/btn5"/>
<Button
android:id="@+id/btn6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:width="75dp"
android:text="@string/btn6"/>
<Button
android:id="@+id/btnMul"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:width="75dp"
android:text="@string/btnMul"/>
</LinearLayout>
<LinearLayout android:layout_width="fill_parent"
android:layout_height="wrap_content">
<Button
android:id="@+id/btn1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:width="75dp"
android:text="@string/btn1"/>
<Button
android:id="@+id/btn2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:width="75dp"
android:text="@string/btn2"/>
<Button
android:id="@+id/btn3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:width="75dp"
android:text="@string/btn3"/>
<Button
android:id="@+id/btnAdd"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:width="75dp"
android:text="@string/btnAdd"/>
</LinearLayout>
<LinearLayout android:layout_width="fill_parent"
android:layout_height="wrap_content">
<Button
android:id="@+id/btn0"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:width="75dp"
android:text="@string/btn0"/>
<Button
android:id="@+id/btnC"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:width="75dp"
android:text="@string/btnC"/>
<Button
android:id="@+id/btnEqu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:width="75dp"
android:text="@string/btnEqu"/>
<Button
android:id="@+id/btnSub"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:width="75dp"
android:text="@string/btnSub"/>
</LinearLayout>
</LinearLayout>
-----------------------功能-------------------------------
package com.example.week2;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.app.Activity;
public class MainActivity extends Activity implements OnClickListener{
//声明一些控件
Button btn0=null;
Button btn1=null;
Button btn2=null;
Button btn3=null;
Button btn4=null;
Button btn5=null;
Button btn6=null;
Button btn7=null;
Button btn8=null;
Button btn9=null;
Button btnBackspace=null;
Button btnCE=null;
Button btnC=null;
Button btnAdd=null;
Button btnSub=null;
Button btnMul=null;
Button btnDiv=null;
Button btnEqu=null;
TextView tvResult=null;
//声明两个参数。接收tvResult前后的值
double num1=0,num2=0;
double Result=0;//计算结果
int op=0;//判断操作数,
boolean isClickEqu=false;//判断是否按了“=”按钮
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//从布局文件中获取控件,
btn0=(Button)findViewById(R.id.btn0);
btn1=(Button)findViewById(R.id.btn1);
btn2=(Button)findViewById(R.id.btn2);
btn3=(Button)findViewById(R.id.btn3);
btn4=(Button)findViewById(R.id.btn4);
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);
btnBackspace=(Button)findViewById(R.id.btnBackspace);
btnCE=(Button)findViewById(R.id.btnCE);
btnC=(Button)findViewById(R.id.btnC);
btnEqu=(Button)findViewById(R.id.btnEqu);
btnAdd=(Button)findViewById(R.id.btnAdd);
btnSub=(Button)findViewById(R.id.btnSub);
btnMul=(Button)findViewById(R.id.btnMul);
btnDiv=(Button)findViewById(R.id.btnDiv);
tvResult=(TextView)findViewById(R.id.tvResult);
//添加监听\
btnBackspace.setOnClickListener(this);
btnCE.setOnClickListener(this);
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);
btnAdd.setOnClickListener(this);
btnSub.setOnClickListener(this);
btnMul.setOnClickListener(this);
btnDiv.setOnClickListener(this);
btnEqu.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
//btnBackspace和CE--------------------
case R.id.btnBackspace:
String myStr=tvResult.getText().toString();
try {
tvResult.setText(myStr.substring(0, myStr.length()-1));
} catch (Exception e) {
tvResult.setText("");
}
break;
case R.id.btnCE:
tvResult.setText(null);
break;
//btn0--9---------------------------
case R.id.btn0:
if(isClickEqu)
{
tvResult.setText(null);
isClickEqu=false;
}
String myString=tvResult.getText().toString();
myString+="0";
tvResult.setText(myString);
break;
case R.id.btn1:
if(isClickEqu)
{
tvResult.setText(null);
isClickEqu=false;
}
String myString1=tvResult.getText().toString();
myString1+="1";
tvResult.setText(myString1);
break;
case R.id.btn2:
if(isClickEqu)
{
tvResult.setText(null);
isClickEqu=false;
}
String myString2=tvResult.getText().toString();
myString2+="2";
tvResult.setText(myString2);
break;
case R.id.btn3:
if(isClickEqu)
{
tvResult.setText(null);
isClickEqu=false;
}
String myString3=tvResult.getText().toString();
myString3+="3";
tvResult.setText(myString3);
break;
case R.id.btn4:
if(isClickEqu)
{
tvResult.setText(null);
isClickEqu=false;
}
String myString4=tvResult.getText().toString();
myString4+="4";
tvResult.setText(myString4);
break;
case R.id.btn5:
if(isClickEqu)
{
tvResult.setText(null);
isClickEqu=false;
}
String myString5=tvResult.getText().toString();
myString5+="5";
tvResult.setText(myString5);
break;
case R.id.btn6:
if(isClickEqu)
{
tvResult.setText(null);
isClickEqu=false;
}
String myString6=tvResult.getText().toString();
myString6+="6";
tvResult.setText(myString6);
break;
case R.id.btn7:
if(isClickEqu)
{
tvResult.setText(null);
isClickEqu=false;
}
String myString7=tvResult.getText().toString();
myString7+="7";
tvResult.setText(myString7);
break;
case R.id.btn8:
if(isClickEqu)
{
tvResult.setText(null);
isClickEqu=false;
}
String myString8=tvResult.getText().toString();
myString8+="8";
tvResult.setText(myString8);
break;
case R.id.btn9:
if(isClickEqu)
{
tvResult.setText(null);
isClickEqu=false;
}
String myString9=tvResult.getText().toString();
myString9+="9";
tvResult.setText(myString9);
break;
//btn+-*/=--------------------------------
case R.id.btnAdd:
String myStringAdd=tvResult.getText().toString();
if(myStringAdd.equals(null))
{
return;
}
num1=Double.valueOf(myStringAdd);
tvResult.setText(null);
op=1;
isClickEqu=false;
break;
case R.id.btnSub:
String myStringSub=tvResult.getText().toString();
if(myStringSub.equals(null))
{
return;
}
num1=Double.valueOf(myStringSub);
tvResult.setText(null);
op=2;
isClickEqu=false;
break;
case R.id.btnMul:
String myStringMul=tvResult.getText().toString();
if(myStringMul.equals(null))
{
return;
}
num1=Double.valueOf(myStringMul);
tvResult.setText(null);
op=3;
isClickEqu=false;
break;
case R.id.btnDiv:
String myStringDiv=tvResult.getText().toString();
if(myStringDiv.equals(null))
{
return;
}
num1=Double.valueOf(myStringDiv);
tvResult.setText(null);
op=4;
isClickEqu=false;
break;
case R.id.btnEqu:
String myStringEqu=tvResult.getText().toString();
if(myStringEqu.equals(null))
{
return;
}
num2=Double.valueOf(myStringEqu);
tvResult.setText(null);
switch (op) {
case 0:
Result=num2;
break;
case 1:
Result=num1+num2;
break;
case 2:
Result=num1-num2;
break;
case 3:
Result=num1*num2;
break;
case 4:
Result=num1/num2;
break;
default:
Result=0;
break;
}
tvResult.setText(String.valueOf(Result));
isClickEqu=true;
break;
default:
break;
}
}
}
下载
转载于:https://www.cnblogs.com/ITGirl00/p/3504891.html
android实操--练习2相关推荐
- qtdesigner怎么实现菜单栏跳转_人人都可写代码-Android零基础编程-app 入口菜单栏实操08...
欢迎来到人人都可写代码,大家好,我是杨晓华,今天我们的课程内容是项目实操,以智者精选项目为例,编写一个Android app的入口关联菜单栏逻辑. 这是要实现的菜单栏组件展示效果,下面就是教大家如何制 ...
- Android应用优化之流畅度优化实操
上一篇流畅度概念向大家详细地描述了VSync机制和Choreographer编舞者的用法.可能所讲解的内容偏向理论概念,因此这篇是流畅度优化实操,整篇主要分三层,UI层.代码逻辑层.IO层来讲述各个优 ...
- (Gradle实操)一步步使用Android Studio配置Gradle并运行Github开源源码
翻了翻博客里的文章,发现小编在CSDN上写博客也有一年的时间了,到目前为止写了十来篇博客,最近些日子也在开始总结自己这一两年来的学习路线,也在开始反思一些问题.我稍稍做了一下总结.首先是产出太少,其次 ...
- tengine简单安装_实操丨如何在EAIDK上部署Tengine开发AI应用之物体检测应用入门(C++)...
前言:近期推出的嵌入式AI系列直播公开课受到广大开发者的喜爱,并收到非常多的反馈信息,其中对如何在EAIDK上面部署Tengine开发AI应用感兴趣的开发者不在少数,我们将分2期以案例实操的形式详细介 ...
- 免费下载 |《数据分析从理念到实操》白皮书上线!先收藏!
今日,神策数据重磅推出<数据分析从理念到实操>白皮书. 该白皮书结合神策数据服务的 1000 多家各行业标杆企业的实践经验,总结了如何构建数据基础.看数据.分析数据.落地数据应用.构建数据 ...
- 神策分析 1.16 版本上线场景库,实操方法论融入产品,全方位赋能多角色应用...
神策数据的产品创新均力求无缝贴合使用者的真实应用场景,有效解决使用者刚需,神策分析 1.16 版本上线,使产品实现了从"功能"向产品个性化.场景化.人性化的智能应用深化升级,从数据 ...
- UnrealEngine5实操--基础概念(持续补充)
UnrealEngine5实操--基础概念 Unreal 术语 UE5 上手指南 关卡快速搭建 视口标准按键操作 Editor 视角移动速度调节 Unreal Editor 快速测距 Actor 操作 ...
- PCDN服务接入实操手册
摘要: 本文为阿里云P2P内容分发网络(PCDN)实操手册,可根据本文内容接入与操作.参考来源官网文档. 一. PCDN是定义? P2P 内容分发网络(英文名:P2P CDN,以下简称PCDN)是以P ...
- 树莓派4B系统搭建(实操讲解巨细版)
一.搭建准备 树莓派介绍: Raspberry Pi(中文名为"树莓派",简写为RPi 是为学生计算机编程教育而设计,只有信用卡大小的微型电脑,其系统基于Linux ...
最新文章
- windo.open 全攻略
- 史上最详细阿里云服务器上Docker部署War包项目 实战每一步都带详细图解!!!
- boost::range_category和boost::iterator_category相关的测试程序
- 【HTML/CSS】SEO的概念和实现
- C语言中输入123求位权,数反转 - it610.com
- 非结构化文件转移服务器,非结构化数据存储管理方法,服务器和系统 Unstructured data storage management method, and a system server...
- WordPress Citizen Space插件跨站请求伪造漏洞
- oracle初级系列教程
- mac mysql配置jdk_mac开发环境搭建
- hdu_5894_hannnnah_j’s Biological Test(打表找规律)
- 2.7.PHP7.1 狐教程-【PHP控制语句 if...else】
- lnmp一键安装远程连接mysql_阿里云 lnmp一键安装包远程访问Mysql
- Arduino UNO+TB6600驱动器控制步进电机正反转
- springcloud 远程rpc调用接口
- cloudcompare:怎么换背景颜色
- 一、Netflix Eureka
- win10c语言乱码修复方法,大神详解win10系统记事本中文变乱码的处理方案
- 【Java8新特性】Stream流
- POSIX thread
- 计算机运维考核指标,信息中心考核指标库
热门文章
- Pandas Apply函数
- 天津医科大学计算机科学与技术,天津医科大学生物医学工程学院
- linux系统的文件系统tmpfs,linux里tmpfs文件系统
- c#打开文件程序闪退_C#调用易语言dll第二次就闪退
- vSAN6.2 性能服务
- Iometer存储测试工具参数说明-图形主界面(整理)
- VMware产品演示网站
- VMware NSX 6组件通信图
- 怎么读取瑞萨mcu的 checksum_为物联网设备选择一颗“安全”的MCU
- c语言字符串怎么转为正数,把字符串转换为与之等价的整型值