如何在Android开发中activity之间数据传递
3个回答
展开全部
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);
}
展开全部
//方式就是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跳到另一个,单向传递数据,前者则是可以双向传递数据~
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跳到另一个,单向传递数据,前者则是可以双向传递数据~
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
发送数据
Intent intent = new Intent();
intent.putExtra(name,value);
接受数据
Intent intent=getIntent();
String s=intent.getStringExtra("name");
Intent intent = new Intent();
intent.putExtra(name,value);
接受数据
Intent intent=getIntent();
String s=intent.getStringExtra("name");
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询