如何利用intent传值,如何利用Intent传递参数?

2020-12-13 11:30:40 字数 6647 阅读 8534

1楼:匿名用户

intent intent=new intent();

intent.putextra("extra", "值!");

取值:intent intent=getintent();

string stringe=intent.getstringextra("extra");

如何利用intent传递参数?

2楼:南霸天

intent传递参数方法:

1、在activity中声明一个内部类,监听onclick动作,在里面new一个intent;

版2、并建立键值对,再权设定好它所绑定的两个activity;

3、再将这个监听类绑定到activiy的按钮上;

4、intent传递过去之后,用下面的方法取出键值即可。

3楼:匿名用户

获取 intent.getstringextra(name)放入 intent.putextra();

如何利用intent来传递int数据

4楼:匿名用户

在android系统中的来intent对象是不支持直源接传递int数据类型bai的,那么解决这类问题有两种方du法:一是通zhi过数据类型转dao换,不过在有些特殊的情况下这种方法并不适用;二是通过bundle这个对象来封装数据进行传递,例如发送端: bundle bundle = new bundle();

bundle.putint("deptname", 3);

intent.putextras(bundle);

这样就可以解决问题。

android编程中用intent传值能传一个变量到另一个activity吗?

5楼:匿名用户

intent intent= new intent(当前activity.this, 要跳转到的activity.class);

bundle bundle=new bundle();

bundle.putint("a", "值");//这你看你要传什么值,int--putint("key","值");

intent.putextras(bundle);//把这个值放到intent里面

startactivity(intent);//跳转

------------------------------------------

这里已经跳转到另一个activity了

在oncreat里写这样的**

intent intent=new intent();

bundle b=new bundle();

//比如这个是string或者int型的:

string str=b.getstring("key");

int a=b.getint("key");

----------------------------------------

这样就完全ok了,好好加油吧,这条路还很长呢

6楼:匿名用户

intent it = new intent(activity.main.this, activity2.class);

bundle bundle=new bundle();

bundle.putint("a", "值");

it.putextras(bundle);

startactivity(it);

新activity中oncreate方法中取传递过来的值bundle bundle = this.getintent().getextras();

int a = bundle.getint("a");

在activity之间使用intent传值和bundle传值的区别和方式

7楼:我是周星星

两者本质上没有任何区别。

bundle只是一个信息的载体 将内部的内容以键值对组织

intent负责activity之间的交互 自己是带有一个bundle的

intent.putextras(bundle bundle)直接将intent的内部bundle设置为参数里的bundle

intent.getextras()直接可以获取intent带有的bundle

intent.putextra(key, value)

和bundle bundle = intent.getextras();

bundle.put***(key, value);

intent.putextras(bundle);

是等价的

intent.get***extra(key)

和bundle bundle = intent.getextras();

bundle .get***(key);

是等价的(***代表数据/对象类型 string boolean 什么的)

intent传值是如何传的?

8楼:匿名用户

intent翻译为中文的意思是意图,目的。它的作用就是调用某个组件去做某一个事情。比如从当前运行的activity跳转到另一个activity,当前activity要启动一个service或启动一个broadcastreceive(广播接收器),此时就需要用intent来完成。

简单的说intent是各个组件的一个桥梁。既然充当了桥梁的角色,那么intent就该可以传递数据,把当前的组件的数据传递到另一个组件去使用,那么intent是如何来传递值的呢?通过intent类提供的setdata()和putextra()方法传递。

前一个参数是uri,是个标识比如一个文件的路径等。后一个参数可以是值也可以是对象,以键值对的形式传递。

activitya:intent intent=new intent();

intent.setclass(activitya.this,activityb.class);

intent.putextra("extra

", "wel***e to ...");

startactivity(intent);activityb:intent intent=getintent();

string stringvalue=intent.getstringextra("extra");如果把stringvalue的值改变,activitya中extra所对应的值不会变。

intent.setclass(activitya.this,activityb.class);

student s=new student("shao",20);

intent.putserializable("student

", s);startactivity(intent);activityb:intent intent=getintent();student s=intent.getserializable("student");现在如果把activityb中得到的student对象s ,改变一个值,如s.

setname("yang");那么activitya里的s会变吗?不会变,因为intent传递对象时,传递的是一个副本(深拷贝)。

所以在android中,intent进行数据传递时,基本数据类型和对象传递的都是副本,改变传递过来的值,不会改变原来的值。注意的是在进行对象传递的时候,该对象所对应的类要实现serializable接口或parcelable接口。

intent传递数据时,可以传递哪些类型数据

9楼:可以叫我表哥

在android应用的开发中,如果我们需要在不同的模块(比如不同的activity之间)之间传递数据,通常有以下两种方法:

1. 利用intent对象携带数据

通过查询intent/bundle的api文档,我们可以获知,intent/bundle支持传递基本类型的数据和基本类型的数组数据,以及string/charsequence类型的数据和string/charsequence类型的数组数据。而对于其它类型的数据貌似无能为力,其实不然,我们可以在intent/bundle的api中看到intent/bundle还可以传递parcelable(包裹化,邮包)和serializable(序列化)类型的数据,以及它们的数组/列表数据。

所以要让非基本类型和非string/charsequence类型的数据通过intent/bundle来进行传输,我们就需要在数据类型中实现parcelable接口或是serializable接口。

1.1 利用parcelable接口实现数据通过intent/bundle进行传递

/*** 代表一个人的信息

* @author gansc

*/public class personinfo implements parcelable

// from parcelable

// 保存到包裹中

@override

publicvoid writetoparcel(parcel dest, int flags)

// 实现parcelable接口的类型中,必须有一个实现了parcelable.creator接口的静态常量成员字段,

// 并且它的名字必须为creator的

publicstaticfinal parcelable.creatorcreator

=new parcelable.creator()

// from parcelable.creator

@override

public personinfo newarray(int size)};}

android通过intent传值,无法接收到值,**如下:

10楼:瑪利亞丶凝望

1.传值

bundlebundle=newbundle();

bundle.putstring("dealerid",dealerid);

intentintent=newintent(getactivity(),dealeractivity.class);

intent.putextras(bundle);

startactivity(intent);

2.接收

stringdealerid=(string)getintent().getextras().get("dealerid");

11楼:匿名用户

第一个地方打印的dealerid是null吗?

一般用arg2取的时候要减1的吧

intent能传多个值吗?

12楼:可以叫我表哥

intent翻译为中文的意思是意图,目的。它的作用就是调用某个组件去做某一个事情。比如从当前运行的activity跳转到另一个activity,当前activity要启动一个service或启动一个broadcastreceive(广播接收器),此时就需要用intent来完成。

简单的说intent是各个组件的一个桥梁。既然充当了桥梁的角色,那么intent就该可以传递数据,把当前的组件的数据传递到另一个组件去使用,那么intent是如何来传递值的呢?通过intent类提供的setdata()和putextra()方法传递。

前一个参数是uri,是个标识比如一个文件的路径等。后一个参数可以是值也可以是对象,以键值对的形式传递。

activitya:

intent intent=new intent();

intent.setclass(activitya.this,activityb.class);

intent.putextra("extra", "wel***e to ...");

startactivity(intent);

activityb:

intent intent=getintent();

string stringvalue=intent.getstringextra("extra");

如果把stringvalue的值改变,activitya中extra所对应的值不会变。

以上的列子是通过putextra()方法传值的,现在看看对象的传递,是怎么传递的?

activitya:

intent intent=new intent();

intent.setclass(activitya.this,activityb.class);

student s=new student("shao",20);

intent.putserializable("student", s);

startactivity(intent);

activityb:

intent intent=getintent();

student s=intent.getserializable("student");

现在如果把activityb中得到的student对象s ,改变一个值,如s.setname("yang");那么activitya里的s会变吗?不会变,因为intent传递对象时,传递的是一个副本(深拷贝)。

所以在android中,intent进行数据传递时,基本数据类型和对象传递的都是副本,改变传递过来的值,不会改变原来的值。注意的是在进行对象传递的时候,该对象所对应的类要实现serializable接口或parcelable接口。