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

main.xml:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:orientation="vertical"
  4. android:layout_width="fill_parent"
  5. android:layout_height="fill_parent"
  6. >
  7. <EditText
  8. android:id="@+id/factorOne"
  9. android:layout_width="fill_parent"
  10. android:layout_height="wrap_content"
  11. />
  12. <TextView
  13. android:id="@+id/symbol"
  14. android:layout_width="fill_parent"
  15. android:layout_height="wrap_content"
  16. />
  17. <EditText
  18. android:id="@+id/factorTwo"
  19. android:layout_width="fill_parent"
  20. android:layout_height="wrap_content"
  21. />
  22. <Button
  23. android:id="@+id/calculate"
  24. android:layout_width="fill_parent"
  25. android:layout_height="wrap_content"
  26. />
  27. </LinearLayout>

页面展示:

result.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:orientation="vertical"
  4. android:layout_width="fill_parent"
  5. android:layout_height="fill_parent"
  6. >
  7. <TextView
  8. android:id="@+id/result"
  9. android:layout_width="fill_parent"
  10. android:layout_height="wrap_content"
  11. />
  12. </LinearLayout>

界面展示:

activity03活动:

  1. package mars.activity03;
  2.  
  3. import android.app.Activity;
  4. import android.content.Intent;
  5. import android.os.Bundle;
  6. import android.view.Menu;
  7. import android.view.MenuItem;
  8. import android.view.View;
  9. import android.view.View.OnClickListener;
  10. import android.widget.Button;
  11. import android.widget.EditText;
  12. import android.widget.TextView;
  13. //1.在Activity03当中,要声明四个控件
  14. //2.要为其中的两个控件设置显示的值
  15. //3.创建一个监听器类,监听按钮按下的动作
  16. //4.将监听器类的对象,绑定在按钮对象上
  17. public class Activity03 extends Activity {
  18. /** Called when the activity is first created. */
  19. private EditText factorOne ;
  20. private EditText factorTwo;
  21. private TextView symbol;
  22. private Button calculate;
  23. @Override
  24. public void onCreate(Bundle savedInstanceState) {
  25. super.onCreate(savedInstanceState);
  26. setContentView(R.layout.main);
  27. //根据控件的ID来取得代表控件的对象
  28. factorOne = (EditText)findViewById(R.id.factorOne);
  29. factorTwo = (EditText)findViewById(R.id.factorTwo);
  30. symbol = (TextView)findViewById(R.id.symbol);
  31. calculate = (Button)findViewById(R.id.calculate);
  32. //为symbol和calculate设置显示的值
  33. // symbol.setText("乘以");
  34. // calculate.setText("计算");
  35. symbol.setText(R.string.symbol);//这里通过引用的方式,去String文件中引用。保证了业务逻辑、视图、引用资源分开
  36. calculate.setText(R.string.calculate);
  37. //将监听器的对象绑定到按钮对象上面
  38. calculate.setOnClickListener(new CalculateListener());
  39. }
  40. //当客户点击MENU按钮的时候,调用该方法
  41. @Override
  42. public boolean onCreateOptionsMenu(Menu menu) {
  43. menu.add(0, 1, 1, R.string.exit);
  44. menu.add(0,2,2,R.string.about);
  45. return super.onCreateOptionsMenu(menu);
  46. }
  47. //当客户点击菜单当中的某一个选项时,会调用该方法
  48. @Override
  49. public boolean onOptionsItemSelected(MenuItem item) {
  50. if(item.getItemId() == 1){
  51. finish();
  52. }
  53. return super.onOptionsItemSelected(item);
  54. }
  55. class CalculateListener implements OnClickListener{
  56.  
  57. @Override
  58. public void onClick(View v) {
  59. //取得两个EditText控件的值
  60. String factorOneStr = factorOne.getText().toString();
  61. String factorTwoStr = factorTwo.getText().toString();
  62. //将这两个值存放到Intent对象当中
  63. Intent intent = new Intent();
  64. intent.putExtra("one",factorOneStr);
  65. intent.putExtra("two",factorTwoStr);
  66. intent.setClass(Activity03.this, ResultActivity.class);
  67. //使用这个Intent对象来启动ResultActivity
  68. Activity03.this.startActivity(intent);
  69. }
  70. }
  71. }

resultActivity:

  1. package mars.activity03;
  2.  
  3. import android.app.Activity;
  4. import android.content.Intent;
  5. import android.os.Bundle;
  6. import android.widget.TextView;
  7. //1.接受从Activity03当中所传递的值
  8. //2.计算两个值的积
  9. //3.将计算的结果显示在Activity上
  10. public class ResultActivity extends Activity{
  11. private TextView resultView;
  12. @Override
  13. protected void onCreate(Bundle savedInstanceState) {
  14. // TODO Auto-generated method stub
  15. super.onCreate(savedInstanceState);
  16. setContentView(R.layout.result);
  17. resultView = (TextView)findViewById(R.id.result);
  18. //得到Intent对象当中的值
  19. Intent intent = getIntent();
  20. String factorOneStr = intent.getStringExtra("one");
  21. String factorTwoStr = intent.getStringExtra("two");
  22. int factorOneInt = Integer.parseInt(factorOneStr);
  23. int factorTwoInt = Integer.parseInt(factorTwoStr);
  24. //计算两个值的积
  25. int result = factorOneInt * factorTwoInt;
  26. resultView.setText(result + "");
  27. }
  28.  
  29. }

String.xml:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <resources>
  3. <string name="hello">Hello World, Activity03!</string>
  4. <string name="app_name">activity03</string>
  5. <string name="resultLabel">result</string>
  6. <string name="symbol">乘以</string>
  7. <string name="calculate">计算</string>
  8. <string name="exit">退出</string>
  9. <string name="about">关于</string>
  10. </resources>

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

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

运行结果:

Android初级教程Activity小案例(计算器乘法运算)的更多相关文章

  1. Android初级教程理论知识(第三章测试&数据存储&界面展现)

    首先介绍单元测试,我在javaweb部分有详细介绍单元测试框架的一篇文章. 可以先看在javaweb中的单元测试详解篇http://blog.csdn.net/qq_32059827/article/ ...

  2. Android初级教程调用手机拍照与摄像功能

    这个小案例建议在手机上运行. package com.example.camera; import java.io.File; import android.net.Uri; import andro ...

  3. Android初级教程理论知识(第二章布局&读写文件)

    常见布局 相对布局 RelativeLayout 组件默认左对齐.顶部对齐 设置组件在指定组件的右边 android:layout_toRightOf="@id/tv1" 设置在指 ...

  4. Android初级教程理论知识(第五章页面跳转和数据传递)

    总体概述: Android四大组件 Activity BroadCastReceiver Service ContentProvider 创建第二个activity 新创建的activity,必须在清 ...

  5. Android初级教程三个Dialog对话框小案例

    这里把三个对话框形式写在一个项目程序里面,用三个按钮控制显示什么样式的对话框. 先看布局文件代码: <LinearLayout xmlns:android="http://schema ...

  6. Android初级教程小案例之单选框RadioGroup与复选框CheckBox

    Android里面的单选框和html中的其实是一样的效果.这里用到两个控件:CheckBox和RadioGroup.直接上代码: radio.xml布局文件: <?xml version=&qu ...

  7. Android初级教程人品计算器

    先看布局: main_activity.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/andr ...

  8. Android初级教程:RatingBar的使用

    记得淘宝里面买家给卖家评分的时候会有一个星星状的评分条,其实就是基于RatingBar做了自定义使用了.那么本篇文章就对RatingBar的使用做一个基本的认识. 接下来就是正题,那就是对于Ratin ...

  9. Android初级教程通过简要分析“土司”源码,来自实现定义土司理论探讨

    由于系统自带的土司瞬间即逝,而且非常难看.因此我们就希望自定义自己的土司风格.有些实例就是基于自定义土司完成的,例如金山卫士的火箭发射,基本原理就是个土司.但是在做出自己的土司风格之前,还是要简要分析 ...

随机推荐

  1. python2.7入门---操作mysql数据库增删改查

    Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口.Python 数据库接口支持非常多的数据库,你可以选择适合你项目的数据库: G ...

  2. 对于DFT频谱泄漏问题的研究

    问题简介: 对于频率为fs的正弦序列,它的频谱应该只是在fs处有离散谱.但是,在实际利用DFT求它的频谱时,对时域做了截断,结果使信号的频谱不只是在fs处有离散谱,而是在以fs为中心的频带范围内都有谱 ...

  3. SVN冲突解决

    问题一.执行SVN commit时候,会生成除正常文件之外.mine..r3439 ..r3368的三个文件 .mine:是自己要提交的版本 .r3439:在别人之前提交的版本 .r3368:初始版本 ...

  4. npm下载包很慢和node-sass编译错误的解决办法

    最近研究一个ionic cordova angular2的前端项目 发现npm install下载包非常慢的问题 最近整理了一些解决这些问题的方法. 1.通过config命令修改https为http ...

  5. mongo数据删除和游标

    数据删除 db.集合.remove(删除条件,是否只删除一个数据);默认删多条(false)true删除一条db.集合.remove({}) 删除所有元素但集合还在db.集合.drop() 删除集合 ...

  6. Win10 下Cmake编译配置 Opencv3.1 + Cuda7.5 + VS2013

    折腾了三天终于配置成功了,在此写下编译配置的全部步骤和遇到的很多坑. 整体介绍: OpenCV 中 CUDA 实现的函数还不是太多,使用前要在OpenCV的官网上确认以下你想要的功能是否已经实现,否则 ...

  7. Web缓存(一) - HTTP协议缓存

    为什么要使用 Web 缓存 Web缓存一般分为浏览器缓存.代理服务器缓存以及网关缓存,本文主要讲的是 浏览器缓存,其它两种缓存大家自行去了解下. Web 缓存游走于服务器和客户端之间.这个服务器可能是 ...

  8. JAVA不可变类(immutable)机制与String的不可变性

    一.不可变类简介 不可变类:所谓的不可变类是指这个类的实例一旦创建完成后,就不能改变其成员变量值.如JDK内部自带的很多不可变类:Interger.Long和String等. 可变类:相对于不可变类, ...

  9. MacOS下Rails+Nginx+SSL环境的搭建(中)

    三.配置Nginx 先是修改 hosts 文件,意思是创建一个本地域名以便我们访问,比如: $ sudo subl /etc/hosts 127.0.0.1 rails_project.local 但 ...

  10. Lucene查询索引

    索引创建 以新闻文档为例,每条新闻是一个document,新闻有news_id.news_title.news_source.news_url.news_abstract.news_keywords这 ...