




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Android开发技术讲义 之启动另一个Activity紧接着上一个练习,我们为上一个练习app添加一些代码,使之当我们点击send按钮的时候能够启动另一个Activity。任务在文本框中输入消息,点击Send按钮,消息会显示在第二个Activity中。对发送按钮进行响应1. 在res/layout目录中,编辑activity_my.xml2. 在元素中添加android:onClick属性res/layout/activity_my.xml该属性的属性值sendMessage,是当点击按钮的时候系统调用的方法名3. 在java/com.mycompanu.myfirstapp目录中,打开MyActivity.java文件4. 在MyActivity类中,添加sendMessage()方法java/com.mycompany.myfirstapp/MyActivity.java/* Called when the user clicks the Send button */public void sendMessage(View view) / Do something in response to button为了匹配android:onClick属性值,该方法必须满足:l 是publicl 返回值为voidl 有且仅有一个View作为参数创建一个Intent1. 在MyActivity.java中的sendMessage()方法中,创建一个Intent启动一个名为DisplayMessageActivity的Activityjava/com.mycompany.myfirstapp/MyActivity.javapublic void sendMessage(View view) Intent intent = new Intent(this, DisplayMessageActivity.class);注意:此时对DisplayMessageActivity的调用会显示出错,我们这时可以先忽略错误这里,Intent构造方法用到了两个参数:l Context作为第一个参数(这里是this,因为Activity是Context的子类)l 第二个参数为系统发送Intent的目标,为某应用组件的Class2. 在本文件的前面,引入Intent类:java/com.mycompany.myfirstapp/MyActivity.javaimport android.content.Intent;按快捷键Alt + Enter(mac中为option + return)来引入类3. 在sendMessage()方法中,使用findViewById()来获取EditText元素java/com.mycompany.myfirstapp/MyActivity.javapublic void sendMessage(View view) Intent intent = new Intent(this, DisplayMessageActivity.class); EditText editText = (EditText) findViewById(R.id.edit_message);4. 在文件的前面,引入EditText类5. 将文本内容赋值给message变量,使用putExtra()方法将message加入intentjava/com.mycompany.myfirstapp/MyActivity.javapublic void sendMessage(View view) Intent intent = new Intent(this, DisplayMessageActivity.class); EditText editText = (EditText) findViewById(R.id.edit_message); String message = editText.getText().toString(); intent.putExtra(EXTRA_MESSAGE, message);Intent可以携带称为extra的键值对数据,putExtra()方法的第一个参数为键,第二个参数为值。6. 在MyActivity类的前面添加一个EXTRA_MESSAGE的定义java/com.mycompany.myfirstapp/MyActivity.javapublic class MyActivity extends ActionBarActivity public final static String EXTRA_MESSAGE = com.mycompany.myfirstapp.MESSAGE; .7. 为了使下一个Activity能够检索到extra数据,要定义一个public常量作为intent的extra数据的键。通常我们用应用的包名作为前缀,以保证键的唯一性。java/com.mycompany.myfirstapp/MyActivity.java/* Called when the user clicks the Send button */public void sendMessage(View view) Intent intent = new Intent(this, DisplayMessageActivity.class); EditText editText = (EditText) findViewById(R.id.edit_message); String message = editText.getText().toString(); intent.putExtra(EXTRA_MESSAGE, message); startActivity(intent);在sendMessage()方法中,将Intent对象作为参数,调用startActivity()方法系统接收到调用之后,启动Intent中指定的Activity。创建第二个Activity所有Activity的子类都必须实现onCreate()方法,在这个方法里接收intent传递过来的消息。在该方法中必须通过setContentView()方法定义Activity的布局,在这里初始化Activity组件的设置。在Android Studio中创建Activity的时候,该Activity类中会含有onCreate()方法。1. 在java目录中,选择包com.mycompany.myfirstapp,右击,选择New Activity Blank Activity2. 在Choose options窗口中,填入下面信息:l Activity Name:DisplayMessageActivityl Layout Name:activity_display_messagel Title:My Messagel Hierarchical Parent:com.mycompany.myfirstapp.MyActivityl Package name:com.mycompany.myfirstapp点击Finish3. 打开DisplayMessageActivity.java文件,该文件中包含onCreate()方法。4. 删除onCreateOptionsMenu()方法,该应用不需要这个方法。接收Intent每个Activity都是由Intent调用的,在Activity中通过调用getIntent()来获取启动该Activity的Intent,从而可以获取包含在该intent中的数据。1. 在java/com.mycompany.myfirstapp目录中,编辑DisplayMessageActivity.java文件2. 在onCreate()方法中,删除下面这行代码:setContentView(R.layout.activity_display_message);3. 获取Intent并放在一个局部变量里Intent intent = getIntent();4. 在文件的前面,引入Intent类5. 提取MyActivity通过getStringExtra()方法传递过来的消息String message = intent.getStringExtra(MyActivity.EXTRA_MESSAGE);显示消息1. 在onCreate()方法中,创建一个TextView对象TextView textView = new TextView(this);2. 通过setText()设置文本大小和消息textView.setTextSize(40);textView.setText(message);3. 然后将TextView作为布局的根视图传递给setContentView()setContentView(textView);4. 在文件的前面引入TextView类完整的onCreate()方法代码如下:Overridepublic void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); / Get the message from the intent Intent intent = getIntent(); String message = intent.getStringExtra(My
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年机关事务管理局医疗保健中心招聘笔试专项练习含答案
- 2017-2018学年高中历史人教版必修三试题第六单元20世纪以来中国重大思想理论成果6-17课后知能检测
- 2017-2018学年高中语文人教版选修先秦诸子选读教师用书第2单元3民为贵
- 九上语文第24课《三顾茅庐》课件
- 2025新版企业员工劳动合同范本
- 地税局知识培训课件
- 基于区块链的可信数字身份认证服务协议
- 2025年法学基础考试试题及答案
- 2025关于物流运输合同范本
- 青少年读物出版协议
- 口才与演讲训练教程(第四版)课件2-2普通话训练
- 新教师三年职业成长规划
- 理化检测员考试题及答案
- 应急疏散培训课件
- 广东省深圳市福田片区2025届数学七上期末质量检测试题含解析
- 公司适用法律法规标准清单2025年08月更新
- 国家中医药管理局《中医药事业发展“十五五”规划》全文
- 美发店租工位合同协议
- 数据结构ppt课件完整版
- 铝模板施工工艺标准
- 采购与供应管理(二)教案
评论
0/150
提交评论