android实现当用户点击该按钮时启动twoactivity代码,android开发教程启动其他的Activity.doc...

android开发教程启动其他的Activity

启动其他的Activity

在完成上一课(建立简单的用户界面)后,你已经拥有了显示一个activity(唯一屏幕)的app(应用),并且这个activity包含了一个文本字段和一个按钮。 在这节课中,你将会添加一些新的代码到MainActivity中,当用户点击发送(Send)按钮时启动一个新的activity。

响应Send(发送)按钮

响应按钮的on-click(点击)事件,打开fragment_main.xml布局文件然后在Button(按钮)元素中添加android:onclick属性:

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="@string/button_send"

android:onClick="sendMessage"//sendMessage is the method name

/>

android:onclick属性的值"sendMessage"就是当用户点击你屏幕按钮时触发方法的名字。

添加相应的方法在MainActivity类中:

/** 当用户点击按钮时会被调用 */

public void sendMessage(View view) {

// 响应按钮的事件处理逻辑

}

请注意,为了让系统能够将这个方法(你刚在MyFirstActivity中添加的sendMessage方法)与在android:onClick属性中提供的方法名字匹配,它们的名字必须一致,特别是,这个方法必须满足以下条件:

公共的

没有返回值

有唯一的视图(View)参数(这个视图就是将被点击的视图)

接下来,你可以在这个方法中编写读取文本内容的代码,并将该内容传到另一个Activity。

构建一个Intent

Intent是在不同组件中提供运行时连接的对象(比如两个Activity)。Intent代表一个应用"想去做什么事",你可以用它做各种各样的任务,不过大部分的时候他们被用来启动另一个Activity。

在sendMessage()方法中创建一个Intent并启动名为DisplayMessageActivity的Activity:

Intent intent = new Intent(this, DisplayMessageActivity.class);

在这之前你需要导入Intent类:

import android.content.Intent;

Tip:在中,按 + enter可以导入缺失的类(在Mac中使用Cmd + Shift + O )

在这个Intent构造函数中有两个参数:

第一个参数是Context(之所有可以用this是因为当前Activity(MyFirstActivity)是Context的子类)

系统需要传递Intent的应用组件的class对象(在这个案例中,为应该被启动的activity)。

Note:如果你正在使用的是类似Eclipse的IDE,这里对DisplayMessageActivity的引用会报错,因为这个类还不存在;暂时先忽略这个错误,你很快就要去创建这个类了。

一个Intent(意图)不仅允许你启动另一个Activity,同时也可以传递一个数据包到另一个Activity,在sendMessage()方法里用方法得到EditText元素,然后将它的文本信息添加到Intent(意图):

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);

Note:你需要导入android.widget.EditText类,再定义EXTRA_MESSAGE的值。

Intent可以携带各种数据类型的集合的key-value附加对,称作extras。?putExtra()方法把键名作为第一个参数,把值作为第二个参数。putExtra(),参见putExtra()

为了让下一个activity能够查询额外数据(extra data),应该用公共常量为Intent定义键。所以把EXTRA_MESSAGE定义添加到MainActivity类:

public class MainActivity extends ActionBarActivity {

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值