Android实战教程第一篇之最简单的计算器

从今天开始,本专栏持续更新Android简易实战类博客文章。和以往专栏不同,此专栏只有实例。每个实例尽量按照知识点对应相应一章节的内容去写,循序渐进。有些实例可能会与另一个专栏有重复的文章。

开始本专栏的第一个简易案例:

首先设置两个布局文件,一个布局文件进行输入数据,获取加法运算;另一个布局文件进行显示最终结果。Activity1启动Activity2,并传递计算结果值给Activity2.

main.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  >
<EditText
  android:id="@+id/factorOne"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  />
<TextView
  android:id="@+id/symbol"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  />
<EditText
  android:id="@+id/factorTwo"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  />
<Button
  android:id="@+id/calculate"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  />
</LinearLayout>

页面展示:

result.xml

activity03活动:

package mars.activity03; 

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
//1.在Activity03当中,要声明四个控件
//2.要为其中的两个控件设置显示的值
//3.创建一个监听器类,监听按钮按下的动作
//4.将监听器类的对象,绑定在按钮对象上
public class Activity03 extends Activity {
 /** Called when the activity is first created. */
 private EditText factorOne ;
 private EditText factorTwo;
 private TextView symbol;
 private Button calculate;
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  //根据控件的ID来取得代表控件的对象
  factorOne = (EditText)findViewById(R.id.factorOne);
  factorTwo = (EditText)findViewById(R.id.factorTwo);
  symbol = (TextView)findViewById(R.id.symbol);
  calculate = (Button)findViewById(R.id.calculate);
  //为symbol和calculate设置显示的值
//  symbol.setText("乘以");
//  calculate.setText("计算");
  symbol.setText(R.string.symbol);//这里通过引用的方式,去String文件中引用。保证了业务逻辑、视图、引用资源分开
  calculate.setText(R.string.calculate);
  //将监听器的对象绑定到按钮对象上面
  calculate.setOnClickListener(new CalculateListener());
 }
 //当客户点击MENU按钮的时候,调用该方法
 @Override
 public boolean onCreateOptionsMenu(Menu menu) {
  menu.add(0, 1, 1, R.string.exit);
  menu.add(0,2,2,R.string.about);
  return super.onCreateOptionsMenu(menu);
 }
 //当客户点击菜单当中的某一个选项时,会调用该方法
 @Override
 public boolean onOptionsItemSelected(MenuItem item) {
  if(item.getItemId() == 1){
   finish();
  }
  return super.onOptionsItemSelected(item);
 }
 class CalculateListener implements OnClickListener{ 

  @Override
  public void onClick(View v) {
   //取得两个EditText控件的值
   String factorOneStr = factorOne.getText().toString();
   String factorTwoStr = factorTwo.getText().toString();
   //将这两个值存放到Intent对象当中
   Intent intent = new Intent();
   intent.putExtra("one",factorOneStr);
   intent.putExtra("two",factorTwoStr);
   intent.setClass(Activity03.this, ResultActivity.class);
   //使用这个Intent对象来启动ResultActivity
   Activity03.this.startActivity(intent);
  }
 }
} 

resultActivity:

package mars.activity03; 

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;
//1.接受从Activity03当中所传递的值
//2.计算两个值的积
//3.将计算的结果显示在Activity上
public class ResultActivity extends Activity{
 private TextView resultView;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  // TODO Auto-generated method stub
  super.onCreate(savedInstanceState);
  setContentView(R.layout.result);
  resultView = (TextView)findViewById(R.id.result);
  //得到Intent对象当中的值
  Intent intent = getIntent();
  String factorOneStr = intent.getStringExtra("one");
  String factorTwoStr = intent.getStringExtra("two");
  int factorOneInt = Integer.parseInt(factorOneStr);
  int factorTwoInt = Integer.parseInt(factorTwoStr);
  //计算两个值的积
  int result = factorOneInt * factorTwoInt;
  resultView.setText(result + "");
 } 

} 

String.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
 <string name="hello">Hello World, Activity03!</string>
 <string name="app_name">activity03</string>
 <string name="resultLabel">result</string>
 <string name="symbol">乘以</string>
 <string name="calculate">计算</string>
 <string name="exit">退出</string>
 <string name="about">关于</string>
</resources> 

最后再看一下配置文件:活动都要进行注册,并且设置Activity03为主活动

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="mars.activity03"
  android:versionCode="1"
  android:versionName="1.0">
 <application android:icon="@drawable/icon" android:label="@string/app_name">
  <activity android:name=".Activity03"
     android:label="@string/app_name">
   <intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
   </intent-filter>
  </activity>
  <activity android:name=".ResultActivity" android:label="@string/resultLabel"/><!--这里使ResultActivity标题栏显示result-->
 </application>
 <uses-sdk android:minSdkVersion="4" /> 

</manifest> 

结果:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Android计算器简单逻辑实现实例分享

    引言: 我的android计算器的实现方式是:按钮输入一次,就处理一次. 但是如果你学过数据结构(栈),就可以使用表达式解析(前缀,后缀)处理. 而这个方式已经很成熟了,但是时间有限,只完成了这个简单的计算器. 至于,这个Android的布局已经在我博客中发布了,不再讲述. 复制代码 代码如下: package com.example.androidlessontwo; import android.os.Bundle;import android.app.Activity;import and

  • android计算器简单实现代码

    本文实例为大家分享了android计算器的具体实现代码,供大家参考,具体内容如下 java代码: package com.itheima74.simplecalculator4; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.Menu; import android.view.MenuItem; import android.view.View; imp

  • android计算器代码示例分享

    复制代码 代码如下: <?xml version="1.0" encoding="utf-8"?><EditText    android:id="@+id/editText1"    android:layout_width="match_parent"    android:layout_height="wrap_content"    android:ems="10&quo

  • Android计算器编写代码

    其实这个安卓计算机,所有的后台思想与<C#计算器编写代码>是一模一样的.Win窗体程序移植到安卓,从C#到Java其实很简单的,因为两者的基本语法都很相像,唯一的难点是安卓的xml布局部分,不像C#窗体能够直接拖.  还是如下图一个能够完成基本四则运算的计算器: 先在res\values\strings.xml设置按钮相应的字体,以免布局文件警告满天飞: <?xml version="1.0" encoding="utf-8"?> <r

  • 从零开始学android实现计算器功能示例分享(计算器源码)

    下面是效果展示: 复制代码 代码如下: <?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

  • android计时器,时间计算器的实现方法

    需求:默认为"00:00:00",点击开始按钮时清零后开始计时,出现如10:28:34.点击停止的时候停止计时.问题:使用Calendar DateFormat的方法,不设置时区获取到的小时是本地时区的(东八区的就是8),设置成GMT标准时区获取到的时间是12小时(12:00:00),设置24小时制无效.在开始时间加减各种小时都无效,而且计时只能到12小时就自动跳上去了,始终无法出现默认状态00:00:00开始计时的效果.尝试各种时间设置方法无效后只能自己写一个根据秒数转换时间格式字符

  • 简单实现Android计算器功能

    自己写的安卓的计算器: 注:这个是在mac中开发的,如果要在windows的eclipse中运行可能会出现路径问题,解决办法从windows中已有的安卓工程根目录下复制一下classpath文件,然后复制粘贴覆盖掉这个工程根目录里面的路径文件,再导入工程应该就可以打开了.  安卓计算器Android <wbr>calculator 工程下载链接:https://github.com/jiangxh1992/Android-Calculator 代码: package com.example.c

  • Android中使用GridLayout网格布局来制作简单的计算器App

    关于GridLayout 在android4.0版本之前,如果想要达到网格布局的效果,首先可以考虑使用最常见的LinearLayout布局,但是这样的排布会产生如下几点问题: 1.不能同时在X,Y轴方向上进行控件的对齐. 2.当多层布局嵌套时会有性能问题. 3.不能稳定地支持一些支持自由编辑布局的工具. 其次考虑使用表格布局TabelLayout,这种方式会把包含的元素以行和列的形式进行排列,每行为一个TableRow对象,也可以是一个View对象,而在TableRow中还可以继续添加其他的控件

  • Android实战教程第一篇之最简单的计算器

    从今天开始,本专栏持续更新Android简易实战类博客文章.和以往专栏不同,此专栏只有实例.每个实例尽量按照知识点对应相应一章节的内容去写,循序渐进.有些实例可能会与另一个专栏有重复的文章. 开始本专栏的第一个简易案例: 首先设置两个布局文件,一个布局文件进行输入数据,获取加法运算:另一个布局文件进行显示最终结果.Activity1启动Activity2,并传递计算结果值给Activity2. main.xml: <?xml version="1.0" encoding=&quo

  • Android实战教程第二篇之简单实现两种进度条效果

    本文实例实现点击按钮模拟进度条下载进度,"下载"完成进度条消失,供大家参考,具体内容如下 代码如下: xml: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical&quo

  • Android实战教程第九篇之短信高效备份

    Android短信高效备份这篇文章,承接上一篇.使用高效的方式备份短信--xml序列化器. 存储短信,要以对象的方式存储.首先创建javabean: package com.itydl.createxml.domain; public class Message { private String body; private String date; private String address; private String type; public String getBody() { ret

  • MySQL基础教程第一篇 mysql5.7.18安装和连接教程

    从这篇开始,用一个新的系列文章去介绍和学习MySQL.为什么要学习MySQL,从产品角度来说,大部分软件的数据库服务还是采取关系型数据库,主要的数据库产品有Oracle.微软的MSSQL.IBM的DB2.和我们要介绍的MySQL.MySQL是很多中小型的网站服务器中数据库的首选,它有免费版,也有商业版,目前是Oracle的产品.从测试人员的角度来说,越来越多的软件产品是和数据有关,例如电商,和一些某一个领域内的数据库服务查询的软件产品.测试人员除了要做基本的软件功能测试之外,公司更希望测试人员可

  • openCV入门学习基础教程第一篇

    目录 前言:计算机眼中的图片 1. 图片的读取与显示 1.1 图片的读取 1.2 显示的图片 1.2.1 显示原始图片 1.2.2 灰度图 1.3 BGR转换成灰度图.RGB 2. 保存图片 3. 视频的读取与显示 4. 截取图像部分 5. 颜色通道提取 6. 边界填充 7. 数值计算 8. 图像融合 9. 知识点总结* 总结 前言:计算机眼中的图片 计算机中图片由许多个像素点组成,如一个500x500的图片,表示长宽各由500个像素点组成. 计算机中一个像素点的值在0-255表示该点亮度  0

  • Visual Studio ASP.NET Core MVC入门教程第一篇

    ASP.NET Core MVC入门教程第一节课,具体内容如下 1.开始环境 visual studio 2017 社区版或其他版本.安装时勾选"Web和云"组中的"ASP.NET及网页开发"项和"其他工具"组中的".NET Core平台开发"项. 2.创建一个网页应用 (1)在 Visual Studio中, select 文件 >新建 >项目. (2) 在"新项目"对话框中的左面板中,点击&

  • Android实战教程第四篇之简单实现短信发送器

    本文实例为大家分享了Android发短信功能的实现方法,供大家参考,具体内容如下 首先配置一个布局: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_

  • Android实战教程第三篇之简单实现拨打电话功能

    本文实例为大家分享了Android打电话功能的实现代码,需要一个文本输入框输入号码,需要一个按钮打电话. 本质:点击按钮,调用系统打电话功能. xml布局文件代码:: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="m

  • Android实战教程第四十三篇之上拉加载与下拉刷新

    ListView的下拉刷新很常见,很多开源的框架都能做到这个效果,当然也可以自己去实现.本篇案例是基于xlistview的. 布局: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent&quo

  • Android实战教程第六篇之一键锁屏应用问题解决

    上一篇,初步开发了这个应用,功能都有了(见http://www.jb51.net/article/96992.htm 点击打开链接). 但是遗留了两个问题:1.还是无法卸载:2.必须手动去点击应用程序进入程序,再点击按钮,这显得很麻烦. 这一篇就解决上面两个问题,做出最好的效果. 首先解决无法卸载问题: 在清单文件中,再配置一键卸载的主活动(两个主活动无所谓,只不过在桌面上显示两个图标而已,其实仍然是一个应用) <activity android:name="com.itydl.locks

随机推荐