Android初级教程Activity小案例(计算器乘法运算)
首先设置两个布局文件,一个布局文件进行输入数据,获取加法运算;另一个布局文件进行显示最终结果。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
- <?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"
- >
- <TextView
- android:id="@+id/result"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- />
- </LinearLayout>
界面展示:
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>
运行结果:
Android初级教程Activity小案例(计算器乘法运算)的更多相关文章
- Android初级教程理论知识(第三章测试&数据存储&界面展现)
首先介绍单元测试,我在javaweb部分有详细介绍单元测试框架的一篇文章. 可以先看在javaweb中的单元测试详解篇http://blog.csdn.net/qq_32059827/article/ ...
- Android初级教程调用手机拍照与摄像功能
这个小案例建议在手机上运行. package com.example.camera; import java.io.File; import android.net.Uri; import andro ...
- Android初级教程理论知识(第二章布局&读写文件)
常见布局 相对布局 RelativeLayout 组件默认左对齐.顶部对齐 设置组件在指定组件的右边 android:layout_toRightOf="@id/tv1" 设置在指 ...
- Android初级教程理论知识(第五章页面跳转和数据传递)
总体概述: Android四大组件 Activity BroadCastReceiver Service ContentProvider 创建第二个activity 新创建的activity,必须在清 ...
- Android初级教程三个Dialog对话框小案例
这里把三个对话框形式写在一个项目程序里面,用三个按钮控制显示什么样式的对话框. 先看布局文件代码: <LinearLayout xmlns:android="http://schema ...
- Android初级教程小案例之单选框RadioGroup与复选框CheckBox
Android里面的单选框和html中的其实是一样的效果.这里用到两个控件:CheckBox和RadioGroup.直接上代码: radio.xml布局文件: <?xml version=&qu ...
- Android初级教程人品计算器
先看布局: main_activity.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/andr ...
- Android初级教程:RatingBar的使用
记得淘宝里面买家给卖家评分的时候会有一个星星状的评分条,其实就是基于RatingBar做了自定义使用了.那么本篇文章就对RatingBar的使用做一个基本的认识. 接下来就是正题,那就是对于Ratin ...
- Android初级教程通过简要分析“土司”源码,来自实现定义土司理论探讨
由于系统自带的土司瞬间即逝,而且非常难看.因此我们就希望自定义自己的土司风格.有些实例就是基于自定义土司完成的,例如金山卫士的火箭发射,基本原理就是个土司.但是在做出自己的土司风格之前,还是要简要分析 ...
随机推荐
- python2.7入门---操作mysql数据库增删改查
Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口.Python 数据库接口支持非常多的数据库,你可以选择适合你项目的数据库: G ...
- 对于DFT频谱泄漏问题的研究
问题简介: 对于频率为fs的正弦序列,它的频谱应该只是在fs处有离散谱.但是,在实际利用DFT求它的频谱时,对时域做了截断,结果使信号的频谱不只是在fs处有离散谱,而是在以fs为中心的频带范围内都有谱 ...
- SVN冲突解决
问题一.执行SVN commit时候,会生成除正常文件之外.mine..r3439 ..r3368的三个文件 .mine:是自己要提交的版本 .r3439:在别人之前提交的版本 .r3368:初始版本 ...
- npm下载包很慢和node-sass编译错误的解决办法
最近研究一个ionic cordova angular2的前端项目 发现npm install下载包非常慢的问题 最近整理了一些解决这些问题的方法. 1.通过config命令修改https为http ...
- mongo数据删除和游标
数据删除 db.集合.remove(删除条件,是否只删除一个数据);默认删多条(false)true删除一条db.集合.remove({}) 删除所有元素但集合还在db.集合.drop() 删除集合 ...
- Win10 下Cmake编译配置 Opencv3.1 + Cuda7.5 + VS2013
折腾了三天终于配置成功了,在此写下编译配置的全部步骤和遇到的很多坑. 整体介绍: OpenCV 中 CUDA 实现的函数还不是太多,使用前要在OpenCV的官网上确认以下你想要的功能是否已经实现,否则 ...
- Web缓存(一) - HTTP协议缓存
为什么要使用 Web 缓存 Web缓存一般分为浏览器缓存.代理服务器缓存以及网关缓存,本文主要讲的是 浏览器缓存,其它两种缓存大家自行去了解下. Web 缓存游走于服务器和客户端之间.这个服务器可能是 ...
- JAVA不可变类(immutable)机制与String的不可变性
一.不可变类简介 不可变类:所谓的不可变类是指这个类的实例一旦创建完成后,就不能改变其成员变量值.如JDK内部自带的很多不可变类:Interger.Long和String等. 可变类:相对于不可变类, ...
- MacOS下Rails+Nginx+SSL环境的搭建(中)
三.配置Nginx 先是修改 hosts 文件,意思是创建一个本地域名以便我们访问,比如: $ sudo subl /etc/hosts 127.0.0.1 rails_project.local 但 ...
- Lucene查询索引
索引创建 以新闻文档为例,每条新闻是一个document,新闻有news_id.news_title.news_source.news_url.news_abstract.news_keywords这 ...