这是我的第一个andriod小程序,第一次写用了半个月,第二次修改用了一天,第三次修改用了两个小时,现在终于比较满意了。现在我就直接分享一下我的源代码,由于思路比较简单,注释加的不多。采用的是相对布局,但是此布局只适合480*800的分辨率,更高的分辨率界面会显示不正常,但是功能没有任何问题,你可以尝试用其他布局来实现界面,总之核心功能实现是不变的。
activity_main.xml文件如下:
复制代码
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.test.MainActivity"
tools:ignore="MergeRootFrame"
android:padding="15dp"
android:layout_gravity="center"
android:background="#111"
>
<Button
android:id="@+id/button4"
android:layout_width="70dp"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/button13"
android:layout_alignBottom="@+id/button13"
android:layout_toLeftOf="@+id/button2"
android:background="#a10b39"
android:padding="10dp"
android:text="="
android:textColor="#fff"
android:textSize="28dp"
android:layout_marginRight="3dp"/>
<Button
android:id="@+id/button9"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/button10"
android:layout_alignBottom="@+id/button10"
android:layout_alignLeft="@+id/button6"
android:background="#666"
android:padding="10dp"
android:text="7"
android:textColor="#fff"
android:textSize="28dp"
android:layout_marginRight="3dp"
android:layout_width="70dp"
android:layout_marginBottom="3dp"
/>
<Button
android:id="@+id/button11"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/button10"
android:layout_alignBottom="@+id/button10"
android:layout_toRightOf="@+id/button13"
android:background="#666"
android:padding="10dp"
android:text="9"
android:textColor="#fff"
android:textSize="28dp"
android:layout_marginRight="3dp"
android:layout_width="70dp"
android:layout_marginBottom="3dp"
/>
<Button
android:id="@+id/button10"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/button18"
android:layout_below="@+id/button17"
android:background="#666"
android:padding="10dp"
android:text="8"
android:textColor="#fff"
android:textSize="28dp"
android:layout_marginRight="3dp"
android:layout_width="70dp"
android:layout_marginBottom="3dp"
/>
<Button
android:id="@+id/button20"
android:layout_width="70dp"
android:layout_height="wrap_content"
android:layout_above="@+id/button14"
android:layout_alignParentRight="true"
android:background="#a10b39"
android:padding="10dp"
android:text="←"
android:textColor="#fff"
android:textSize="28dp"
android:layout_marginBottom="3dp"/>
<Button
android:id="@+id/button19"
android:layout_width="70dp"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/button20"
android:layout_alignBottom="@+id/button20"
android:layout_toLeftOf="@+id/button20"
android:background="#a10b39"
android:padding="10dp"
android:text="CE"
android:textColor="#fff"
android:textSize="28dp"
android:layout_marginRight="3dp"
android:layout_marginBottom="3dp"
/>
<Button
android:id="@+id/button18"
android:layout_width="70dp"
android:layout_height="wrap_content"
android:layout_above="@+id/button10"
android:layout_toLeftOf="@+id/button11"
android:background="#a10b39"
android:padding="10dp"
android:text="±"
android:textColor="#fff"
android:textSize="28dp"
android:layout_marginRight="3dp"
android:layout_marginBottom="3dp"
/>
<Button
android:id="@+id/button17"
android:layout_width="70dp"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/editText1"
android:layout_marginTop="5dp"
android:background="#a10b39"
android:padding="10dp"
android:text="√"
android:textColor="#fff"
android:textSize="28dp"
android:layout_marginRight="3dp"
android:layout_marginBottom="3dp" />
<Button
android:id="@+id/button14"
android:layout_width="70dp"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_below="@+id/button18"
android:background="#d89218"
android:padding="10dp"
android:text="÷"
android:textColor="#fff"
android:textSize="28dp"
android:layout_marginBottom="3dp" />
<Button
android:id="@+id/button7"
android:layout_width="70dp"
android:layout_height="wrap_content"
android:layout_below="@+id/button10"
android:layout_toRightOf="@+id/button6"
android:background="#666"
android:padding="10dp"
android:text="5"
android:textColor="#fff"
android:textSize="28dp"
android:layout_marginBottom="3dp"
android:layout_marginRight="3dp"/>
<Button
android:id="@+id/button6"
android:layout_width="70dp"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/button7"
android:layout_alignBottom="@+id/button7"
android:layout_alignParentLeft="true"
android:background="#666"
android:padding="10dp"
android:text="4"
android:textColor="#fff"
android:textSize="28dp"
android:layout_marginRight="3dp"
android:layout_marginBottom="3dp" />
<Button
android:id="@+id/button15"
android:layout_width="70dp"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/button7"
android:layout_alignBottom="@+id/button7"
android:layout_alignParentRight="true"
android:background="#d89218"
android:padding="10dp"
android:text="×"
android:textColor="#fff"
android:textSize="28dp"
android:layout_marginBottom="3dp" />
<Button
android:id="@+id/button8"
android:layout_width="70dp"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/button7"
android:layout_alignBottom="@+id/button7"
android:layout_toRightOf="@+id/button10"
android:background="#666"
android:padding="10dp"
android:text="6"
android:textColor="#fff"
android:textSize="28dp"
android:layout_marginBottom="3dp"
android:layout_marginRight="3dp" />
<Button
android:id="@+id/button3"
android:layout_width="70dp"
android:layout_height="wrap_content"
android:layout_below="@+id/button7"
android:layout_toRightOf="@+id/button1"
android:background="#666"
android:padding="10dp"
android:text="2"
android:textColor="#fff"
android:textSize="28dp"
android:layout_marginBottom="3dp"
android:layout_marginRight="3dp" />
<Button
android:id="@+id/button1"
android:layout_width="70dp"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/button3"
android:layout_alignBottom="@+id/button3"
android:layout_alignParentLeft="true"
android:background="#666"
android:padding="10dp"
android:text="1"
android:textColor="#fff"
android:textSize="28dp"
android:layout_marginBottom="3dp"
android:layout_marginRight="3dp" />
<Button
android:id="@+id/button5"
android:layout_width="70dp"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/button3"
android:layout_alignBottom="@+id/button3"
android:layout_toRightOf="@+id/button7"
android:background="#666"
android:padding="10dp"
android:text="3"
android:textColor="#fff"
android:textSize="28dp"
android:layout_marginBottom="3dp"
android:layout_marginRight="3dp"/>
<Button
android:id="@+id/button16"
android:layout_width="70dp"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/button5"
android:layout_alignBottom="@+id/button5"
android:layout_alignLeft="@+id/button15"
android:background="#d89218"
android:padding="10dp"
android:text="-"
android:textColor="#fff"
android:textSize="28dp"
android:layout_marginBottom="3dp" />
<Button
android:id="@+id/button2"
android:layout_width="70dp"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/button4"
android:layout_alignBottom="@+id/button4"
android:layout_alignParentRight="true"
android:background="#d89218"
android:padding="10dp"
android:text="+"
android:textColor="#fff"
android:textSize="28dp" />
<Button
android:id="@+id/button13"
android:layout_width="70dp"
android:layout_height="wrap_content"
android:layout_below="@+id/button3"
android:layout_toLeftOf="@+id/button4"
android:padding="10dp"
android:text="."
android:textColor="#fff"
android:textSize="28dp"
android:layout_marginRight="3dp"
android:background="#d89218" />
<Button
android:id="@+id/button12"
android:layout_width="70dp"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/button13"
android:layout_alignBottom="@+id/button13"
android:layout_alignParentLeft="true"
android:background="#666"
android:padding="10dp"
android:text="0"
android:textColor="#fff"
android:textSize="28dp"
android:layout_marginRight="3dp" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/editText1"
android:layout_alignParentTop="true"
android:layout_alignRight="@+id/editText1"
android:background="#666"
android:text=" "
android:textColor="#fff"
android:textSize="15dp"
android:textAppearance="?android:attr/textAppearanceLarge" />
<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="40dp"
android:layout_alignLeft="@+id/button17"
android:layout_below="@+id/textView1"
android:background="#666"
android:ems="10"
android:singleLine="true"
android:textColor="#000"
android:textSize="28dp" />
</RelativeLayout>
复制代码
MainActivity.java代码如下:
复制代码
package com.example.mycalculator;
import android.app.Activity;
import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends Activity {
private Button btn1,btn2,btn3,btn4,btn5,btn6,btn7,btn8,btn9,btn10,btn11,btn12,btn13,btn14,btn15,btn16,btn17,btn18,btn19,btn20;
private EditText editText;//显示输入的数字
private String opt = "+";//操作符
private double n1 = 0.0, n2 = 0.0;//两个操作数
private TextView textView;//显示算式
//跟据被选择按钮的id设置监听器
private OnClickListener lisenter = new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
editText = (EditText)findViewById(R.id.editText1);
textView = (TextView) findViewById(R.id.textView1);
String s = editText.getText().toString();//获取字符串
Button btn =(Button)v;
try{
switch(btn.getId())
{
case R.id.button1://1
{
String str = editText.getText().toString();
editText.setText(str + 1);
str = editText.getText().toString();
textView.setText(str);
break;
}
case R.id.button2://+
{
String str = editText.getText().toString();
n1 = Double.parseDouble(str);
opt = "+";
textView.setText(n1 + opt);
editText.setText("");
break;
}
case R.id.button3://2
{
String str = editText.getText().toString();
editText.setText(str + 2);
str = editText.getText().toString();
textView.setText(str);
break;
}
case R.id.button4://操作符=
{
if(opt == "+")
{
String str = editText.getText().toString();
n2 = Double.parseDouble(str);
textView.setText(n1 + opt + n2 + "=");
editText.setText((n1 + n2) + "");
}
else if(opt == "-")
{
String str = editText.getText().toString();
n2 = Double.parseDouble(str);
textView.setText(n1 + opt + n2 + "=");
editText.setText((n1 - n2) + "");
}
else if(opt == "*")
{
String str = editText.getText().toString();
n2 = Double.parseDouble(str);
textView.setText(n1 + opt + n2 + "=");
editText.setText((n1 * n2) + "");
}
else if(opt == "/")
{
String str = editText.getText().toString();
n2 = Double.parseDouble(str);
if(n2 == 0)
{
editText.setText("");
textView.setText("除数不能为0");
break;
}
else
{
textView.setText(n1 + opt + n2 + "=");
editText.setText((n1 / n2) + "");
}
}
break;
}
case R.id.button5://3
{
editText.setText(editText.getText().toString() + 3);
String str = editText.getText().toString();
textView.setText(str);
break;
}
case R.id.button6://4
{
editText.setText(editText.getText().toString() + 4);
String str = editText.getText().toString();
textView.setText(str);
break;
}
case R.id.button7://5
{
editText.setText(editText.getText().toString() + 5);
String str = editText.getText().toString();
textView.setText(str);
break;
}
case R.id.button8://6
{
editText.setText(editText.getText().toString() + 6);
String str = editText.getText().toString();
textView.setText(str);
break;
}
case R.id.button9://7
{
editText.setText(editText.getText().toString() + 7);
String str = editText.getText().toString();
textView.setText(str);
break;
}
case R.id.button10://8
{
editText.setText(editText.getText().toString() + 8);
String str = editText.getText().toString();
textView.setText(str);
break;
}
case R.id.button11://9
{
editText.setText(editText.getText().toString() + 9);
String str = editText.getText().toString();
textView.setText(str);
break;
}
case R.id.button12://0
{
textView.setText(n1 + opt + 10);
editText.setText(editText.getText().toString() + 0);
String str = editText.getText().toString();
textView.setText(str);
break;
}
case R.id.button13://.
{
String str = editText.getText().toString();
if(str.indexOf(".") != -1) //判断字符串中是否已经包含了小数点,如果有就什么也不做
{
}
else //如果没有小数点
{
if(str.equals("0"))//如果开始为0,
editText.setText(("0" + ".").toString());
else if(str.equals(""))//如果初时显示为空,就什么也不做
{
}
else
editText.setText(str + ".");
}
break;
}
case R.id.button14://操作符 /
{
String str = editText.getText().toString();
n1 = Double.parseDouble(str);
opt = "/";
editText.setText("");
textView.setText(n1 + opt);
break;
}
case R.id.button15://操作符*
{
String str = editText.getText().toString();
n1 = Double.parseDouble(str);
opt = "*";
editText.setText("");
textView.setText(n1 + opt);
break;
}
case R.id.button16://操作符-
{
String str = editText.getText().toString();
n1 = Double.parseDouble(str);
opt = "-";
editText.setText("");
textView.setText(n1 + opt);
break;
}
case R.id.button17://genhao
{
String str = editText.getText().toString();
n1 = Double.parseDouble(str);
editText.setText(Math.sqrt(n1) + "");
textView.setText(n1 + "的平方根是");
break;
}
case R.id.button18://+/-
{
String str =editText.getText().toString();
n1 = Double.parseDouble(str);
if(str.length() > 0)
editText.setText(-n1 + "");
textView.setText(-n1 + "");
break;
}
case R.id.button19://CE
{
String str =editText.getText().toString();
if(str.length() > 0)
editText.setText("");
break;
}
case R.id.button20://<-
{
String str =editText.getText().toString();
if(str.length() > 0)
editText.setText(str.substring(0, str.length() - 1));
break;
}
}
}catch(Exception e){}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (savedInstanceState == null) {
getFragmentManager().beginTransaction()
.add(R.id.container, new PlaceholderFragment()).commit();
}
//获取按钮的id
btn1 = (Button) findViewById(R.id.button1);
btn2 = (Button) findViewById(R.id.button2);
btn3 = (Button) findViewById(R.id.button3);
btn4 = (Button) findViewById(R.id.button4);
btn5 = (Button) findViewById(R.id.button5);
btn6= (Button) findViewById(R.id.button6);
btn7 = (Button) findViewById(R.id.button7);
btn8 = (Button) findViewById(R.id.button8);
btn9 = (Button) findViewById(R.id.button9);
btn10 = (Button) findViewById(R.id.button10);
btn11 = (Button) findViewById(R.id.button11);
btn12 = (Button) findViewById(R.id.button12);
btn13 = (Button) findViewById(R.id.button13);
btn14 = (Button) findViewById(R.id.button14);
btn15 = (Button) findViewById(R.id.button15);
btn16 = (Button) findViewById(R.id.button16);
btn17 = (Button) findViewById(R.id.button17);
btn18 = (Button) findViewById(R.id.button18);
btn19 = (Button) findViewById(R.id.button19);
btn20 = (Button) findViewById(R.id.button20);
//为按钮添加监听器
btn1.setOnClickListener(lisenter);
btn2.setOnClickListener(lisenter);
btn3.setOnClickListener(lisenter);
btn4.setOnClickListener(lisenter);
btn5.setOnClickListener(lisenter);
btn6.setOnClickListener(lisenter);
btn7.setOnClickListener(lisenter);
btn8.setOnClickListener(lisenter);
btn9.setOnClickListener(lisenter);
btn10.setOnClickListener(lisenter);
btn11.setOnClickListener(lisenter);
btn12.setOnClickListener(lisenter);
btn13.setOnClickListener(lisenter);
btn14.setOnClickListener(lisenter);
btn15.setOnClickListener(lisenter);
btn16.setOnClickListener(lisenter);
btn17.setOnClickListener(lisenter);
btn18.setOnClickListener(lisenter);
btn19.setOnClickListener(lisenter);
btn20.setOnClickListener(lisenter);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in
AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
/**
* A placeholder fragment containing a simple view.
*/
public static class PlaceholderFragment extends Fragment {
public PlaceholderFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_main, container,
false);
return rootView;
}
}
- android简易计算器
activity_main.xml: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android&q ...
- 制作一个简易计算器——基于Android Studio实现
一个计算器Android程序的源码部分分为主干和细节两部分. 一.主干 1. 主干的构成 计算器的布局 事件(即计算器上的按钮.文本框)监听 实现计算 2. 详细解释 假设我们的项目名为Calcula ...
- Android简易实战教程--第一话《最简单的计算器》
转载请注明出处:http://blog.csdn.net/qq_32059827/article/details/51707931 从今天开始,本专栏持续更新Android简易实战类博客文章.和以往专 ...
- JavaScript简易计算器
JavaScript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型.它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标 ...
- 自制c#简易计算器
这是一个课堂作业,我觉得作为一个简易的计算器不需要态度复杂的东西,可能还有一些bug,有空再慢慢加强. using System;using System.Collections.Generic;us ...
- 剖析简易计算器带你入门微信小程序开发
写在前面,但是重点在后面 这是教程,也不是教程. 可以先看Demo的操作动图,看看是个什么玩意儿,GitHub地址(https://github.com/dunizb/wxapp-sCalc) 自从微 ...
- PHP学习笔记02——简易计算器
<!DOCTYPE html> <html> <head> <title>PHP简易计算器</title> </head> &l ...
- JavaScript之简易计算器
<head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8&quo ...
- 菜鸟学习Struts——简易计算器
这是学习Struts的一个简单的例子文件结构如下: 1.配置Struts环境 2.新建input.jsp,success.jsp,error.jsp input.jsp代码如下: <%@ pag ...
随机推荐
- 2014百度之星第一题Energy Conversion
Energy Conversion Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others ...
- FreeSWITCH呼叫参数之sip_cid_type
这个参数定义了呼叫中主叫信息的头字段类型.支持两种类型: 1. rpidRemote-Party-ID头,这是默认的设置.{sip_cid_type=rpid}sofia/default/user@e ...
- [转] Java DecimalFormat 用法
我们经常要将数字进行格式化,比如取2位小数,这是最常见的.Java 提供 DecimalFormat 类,帮你用最快的速度将数字格式化为你需要的样子.下面是一个例子: importjava.text. ...
- C#基础第五天-作业-用DataTable制作名片集
1.用DataTable集合去实现名片集.(增加,修改,删除,查询,查询全部)需求:根据人名去(删除/查询).指定列:姓名,年龄,性别,爱好,电话. 本系列教程: C#基础总结之八面向对象知识点总结- ...
- centos7 中搭建gitlab
1.在virtual box中新建一个虚拟机 2.gitlab ce(community版本)地址:https://about.gitlab.com/installation/#centos-7?ve ...
- fiddler 抓取iphone发出的http和https包
1.清理iphone的描述文件,在通用里面设置.这一步目的防止手机里面已经存在了DO_NOT_TRUST_FiddlerRoot证书,导致后面抓不了包,所以先清理下 2.下载安装fiddler,百度或 ...
- Ajax接收并显示后台传来的list集合内的数据信息
最近在学习Ajax做一个留言系统的时候碰到需要将list集合从后台传到前台ajax接收并显示的情况,在网上搜了很多,但很多情况都不是和我遇见的情况一样的,现在,直接贴出我的问题及解决方法. 后台代码: ...
- php分享二十三:字符编码
1:ASCII 在计算机中,所有的数据在存储和运算时都要使用二进制数表示(因为计算机用高电平和低电平分别表示1和0),例如,像a.b.c.d这样的52个字母(包括大写).以及0.1等数字还有一些常用的 ...
- HTML常用模板:用DIV实现网站首页、后台管理首页(整理)
1. 说明 网上下载的模板,用DIV实现页面模块之间的分隔(不是用frameset/frame).可以选择有无header/menu/footer,主体如何等等.删除了几个我认为重复的.重新命名而已. ...
- 关于 隐藏元素(样式为 display: none 的元素)及其子元素 获取不到高度的问题
IE 和 Edge 中都是这样,Chrome中好像还好. 方法就是换一个样式,还有一个控制显示隐藏的:visibility 相关文档:http://www.w3school.com.cn/cssref ...