android中使用两个intent使数据在两个Activity中传递

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/xiyoucode/article/details/64520922

android编程中使用intent使数据两个Activity之间传递


1:在intent中夹带数据传给新Activity

      可以使用Intent的putExtra(数据名称,数据)方法将数据附加到Intent中,其中的参数说明如下:

      第一个参数要传入字符串类型的数据名称(可以称之为键值),以便稍后以此名称来读出数据。

      第二个参数为要实际附加的数据,其类型可以是任何常用类型,或者是常用类型的数组。

      实例如下:

String[] favor = {"骨头","肉","狗粮"};
Intent it = new Intent(this,second.class);
it.putExtra("编号",1);
it.putExtra("说明",狗狗);
it.putExtra("爱吃",favor);
startActivity(it);




2:Intent()与getXxxExtra():从Intent中去数据

     在新的Activity中,则可以使用getIntent()来获取传入的Intent对象,然后再用Intent的getXxxExtra(数据名称,默认值)方法来读取数据。其中Xxx为数据的类型名称;

     而第二个参数则是默认值,当Intent中找不到指定名称的数据时就会将这个默认值返回。如果存入数组则要用getXxxArrayExtra(数据名称)来读取。

     实例如下:

Intent it = getIntent();
int num = it.getIntExtra("编号",0);                      //当获取数据失败时返回0
String da = it.getStringExtra("说明");                   //当获取数据失败时返回null
String[] a = it.getStringArrayExtra("爱吃");             //当获取数据失败时返回null


   

3.要求新的Activity返回数据

    如果想让新启动的Activity返回数据的话步骤如下:

    在主Activity中改用startActivityForResult()来启动新Activity

  startActivityForResult(Intent it,int 标识符);          //标识符作为一个自定义的值,当新Activity返回数据时也会一并返回此标识符以辨别

    新Activity在结束前使用setResult()返回执行的结果与数据

  setResult(int 结果码,Intent,it);                       //结果码可以设置为Activity类中定义的RESULT_OK或是RESULT_CANCELED常数,it为Intent对象用来夹带数据可以为null

     在住Activity中加入onActivityResult()方法接受返回的数据

  protect void onActivityRestlt(int 标识符,int 结果码,Intent it)   //在这个方法中应检查标识符是否与步骤1的相符,然后按结果码而进行不同的处理,并由it中读取返回的数据

    






展开阅读全文

没有更多推荐了,返回首页