关于android Intent的初步学习

初步探索及使用Intent


Intent的定义

Intent对象是component用来与操作系统通信的媒介工具,这里用于Activity之间的通信。
//一种简单的显示调用
xxxx.setOnClickListener(new View.OnClickListen(){
    @Override
    public void onClick(){
    Intent i = new Intent(NowActivity.this, nextActivity.class)
    //Intent的构造方法 public Intent(Context packageContext,Class<?> cls)
    startActivity(i);
    }
});

Activity间的数据传递

数据传递需要调用Intent.putExtra(...)方法。
  • 举例一,使用Intent简单传递数据
    public Intent putExtra(String name, boolean value)
    参数一是固定为String类型的键,参数二可以是多种数据类型。并返回intent自身
    public boolean getBooleanExtra(String name, boolean defaultValue)
    参数一extra的名字,即键,参数二是指定默认值(默认结果),在无法取得有效键值的时候调用
//初始activity处代码
Intent i = new Intent(Context packageContext, nextActivity.class)
//一、新建一个Intent对象,并定好上下文
i.putExtra(String name, data);
//二、封装数据
startActivity(i);
//三、启动目标Activity

//被调用activity处代码,从extra中取数据
data = getIntent().getBooleanExtra(name, false);
//取值,Activity.getIntent()方法返回了有startActivity(Intent)方法转发的Intent对象
  • 举例二,从子Activity获取返回结果
    父activity代码
    public void startActivityForResult(Intent intent, int requestCode);
    参数一同前述的Intent,参数二是请求代码。请求代码是先发送给子activity,然后再返回给
    父activity的用户定义整数值。当一个activity启动多个不同类型的子activity,且需要判断区
    分消息回馈方时,通常会用到改请求代码。

    子activity代码
    public final void setResult(int resultCode)
    public final void setResult(int resultCode, Intent data)
    其中的resultcode是结果代码,它指定为RESULT_OK或RESULT_CANCELED,当用户不掉用
    setResult()方法是,系统默认发送结果代码”RESULT_CANCELED”,当让,我们要子Activity
    返回数据,在此选择第二种方法。

//初始activity处代码
Intent i = new Intent(Context packageContext, nextActivity.class)
// startActivity(i); 其他同上,换一种启动方式
startActivityForResult(i, 0);

//子activity处代码
Intent result = new Intent();
//新建Intent对象
result.putExtra(String name, data);
setResult(RESULT_OK, result);
//调用setResult()方法

//父activity读取Extra
data = getIntent().getBooleanExtra(name, false);

小结

今天断断续续的学习,算是看懂了点Intent的运作。2017/3/12

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值