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接口。