如何在Android开发中activity之间数据传递

 我来答
锺芮0G30d3
2016-06-14 · TA获得超过628个赞
知道小有建树答主
回答量:124
采纳率:0%
帮助的人:156万
展开全部

android各组件之间可以使用Intent来传递数据, 这里以ActivityA向ActivityB传递数据为例

Intent intent = new Intent(context, ActivityB.class);

//如果context上下文不是Activity的话, 需要添加下面这个flag,
if (!(context instanceof Activity)) {
   intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
}
//添加要传递的数据
//这里的key到时候ActivityB会用来得到value
//android要求可以传递的数据类型包括基本数据类型,
//基本数据类型的数组,CharSequence,以及实现了Parcelable的对象
//putExtra是重载方法, 根据value的类型会适当的打包进intent的Bundle对象里
intent.putExtra(key, value);
//或则将数据打包进Bundle data里, 然后intent.putExtras(data);

context.startActivity(intent);

在ActivityB中

public void onCreate(Bundle savedInstanceState) {
    //得到传递过来的数据
    Bundle bundle = getIntent().getExtras();
    //通过getXXX方法来获取key对应的value
    bundle.getXXX(key);
}
finalfor
2016-05-13 · 超过30用户采纳过TA的回答
知道答主
回答量:43
采纳率:0%
帮助的人:33.6万
展开全部
//方式就是Intent或者Intent+Bundle

Intent intent = new Intent(第一个activity.this,第二个activity.class);
//数据少的时候可以直接用 intent.putExtra()的形式传
//数据多的时候
Bundle bundle = new Bundle()
bundle.putXXX(键,值);//XXX表示的是数据类型String 、Int、Serializable、Parcelable等等
startActivity(intent);

//相应的在第二个activity里
Intent intent = getIntent();
//然后取值就可以:
Bundle = bundle = intent.getExtras();
//....取值就行了

//只是Serializable、Parcelable这类是为了传Object时采用的,你可以自行百度如何利用bundle传递Object

//另外还有startActivityForResult(intent)和startActivity(intent)的区别,后者仅仅从一个activity跳到另一个,单向传递数据,前者则是可以双向传递数据~
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
_诸葛_不亮
2016-05-18
知道答主
回答量:22
采纳率:0%
帮助的人:7.5万
展开全部
发送数据

Intent intent = new Intent();
intent.putExtra(name,value);
接受数据
Intent intent=getIntent();
String s=intent.getStringExtra("name");
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式