当前位置:文档之家› 03-04-Android开发技术讲义 之启动另一个Activity

03-04-Android开发技术讲义 之启动另一个Activity

Android开发技术讲义之启动另一个
Activity
紧接着上一个练习,我们为上一个练习app添加一些代码,使之当我们点击send 按钮的时候能够启动另一个Activity。

任务
在文本框中输入消息,点击Send按钮,消息会显示在第二个Activity中。

对发送按钮进行响应
1.在res/layout目录中,编辑activity_my.xml
2.在<Button>元素中添加android:onClick属性
res/layout/activity_my.xml
该属性的属性值"sendMessage",是当点击按钮的时候系统调用的方法名
3.在java/com.mycompanu.myfirstapp目录中,打开MyActivity.java文件
4.在MyActivity类中,添加sendMessage()方法
java/com.mycompany.myfirstapp/MyActivity.java
为了匹配android:onClick属性值,该方法必须满足:
●是public
●返回值为void
●有且仅有一个View作为参数
创建一个Intent
1.在MyActivity.java中的sendMessage()方法中,创建一个Intent启动一个名
为DisplayMessageActivity的Activity
java/com.mycompany.myfirstapp/MyActivity.java
注意:此时对DisplayMessageActivity的调用会显示出错,我们这时可以先忽略错误
这里,Intent构造方法用到了两个参数:
●Context作为第一个参数(这里是this,因为Activity是Context的子类)
●第二个参数为系统发送Intent的目标,为某应用组件的Class
2.在本文件的前面,引入Intent类:
java/com.mycompany.myfirstapp/MyActivity.java
按快捷键Alt + Enter(mac中为option + return)来引入类
3.在sendMessage()方法中,使用findViewById()来获取EditText元素
java/com.mycompany.myfirstapp/MyActivity.java
4.在文件的前面,引入EditText类
5.将文本内容赋值给message变量,使用putExtra()方法将message加入
intent
java/com.mycompany.myfirstapp/MyActivity.java
Intent可以携带称为extra的键值对数据,putExtra()方法的第一个参数为键,第二个参数为值。

6.在MyActivity类的前面添加一个EXTRA_MESSAGE的定义
java/com.mycompany.myfirstapp/MyActivity.java
7.为了使下一个Activity能够检索到extra数据,要定义一个public常量作为
intent的extra数据的键。

通常我们用应用的包名作为前缀,以保证键的唯一性。

java/com.mycompany.myfirstapp/MyActivity.java
在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 Activity
2.在Choose options窗口中,填入下面信息:
●Activity Name:DisplayMessageActivity
●Layout Name:activity_display_message
●Title:My Message
●Hierarchical Parent:com.mycompany.myfirstapp.MyActivity
●Package name:com.mycompany.myfirstapp
点击Finish
3.打开DisplayMessageActivity.java文件,该文件中包含onCreate()方法。

4.删除onCreateOptionsMenu()方法,该应用不需要这个方法。

接收Intent
每个Activity都是由Intent调用的,在Activity中通过调用getIntent()来获取启动该Activity的Intent,从而可以获取包含在该intent中的数据。

1.在java/com.mycompany.myfirstapp目录中,编辑
DisplayMessageActivity.java文件
2.在onCreate()方法中,删除下面这行代码:
3.获取Intent并放在一个局部变量里
4.在文件的前面,引入Intent类
5.提取MyActivity通过getStringExtra()方法传递过来的消息
显示消息
1.在onCreate()方法中,创建一个TextView对象
2.通过setText()设置文本大小和消息
3.然后将TextView作为布局的根视图传递给setContentView()
4.在文件的前面引入TextView类。

相关主题