关于android Intent的初步学习

    xiaoxiao2021-03-25  57

    初步探索及使用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

    转载请注明原文地址: https://ju.6miu.com/read-36429.html

    最新回复(0)