首页 > 代码库 > Activity学习(五)——Bundle机制
Activity学习(五)——Bundle机制
上一篇文章我简单介绍了Activity之间简单切换,很简单,这一篇文章我们继续聊Android中程序页面互相跳转的Activity,不过这一次我们在Activity跳转时,携带一些简单的数据,然后在新的Activity中将携带的数据展示出来。
不过请谨记我们这边暂时先携带一些简单的数据(简单的数据类型包括String),而不是那些大额的对象实例 ,在Activity中携带实例我们以后再论。
在Intent中我们使用putExtras方法携带数据,在例子中我们就介绍将数据存放到Bundle中,然后putExtras带上Bundle参数,代码如下:
Java代码
- public class ActivityA extends Activity {
- private Button button;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.layout_for_a);
- // 设置当前的的Activity的标题,以作为标记使用
- setTitle("这是Activity A");
- // 获取布局文件中的button
- button = (Button) findViewById(R.id.a_button);
- // 给button设置文字
- button.setText("A跳B");
- // button添加监听事件
- button.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- // 调用AtoB
- AtoB();
- }
- });
- }
- public void AtoB() {
- // intent很重要,是两个Activity之间的纽带
- Intent in = new Intent();
- // 使用intent连接两个Activity,一个参数是当前的上下文(context),还有一个是要切换到的Activity主类
- in.setClass(this, ActivityB.class);
- //需要传出去的数据字串
- String hello = "我是来自Bundle中的数据";
- //我们把要传出去的字串放到bundle中
- Bundle extras = new Bundle();
- //第一个参数是key值,取的通过这个key就可以拿到这个bundle中的数据了
- extras.putString("intent_bundle", hello);
- //将bundle放进Intent中
- in.putExtras(extras);
- // 跳转
- startActivity(in);
- }
- }
我们再在另外一个ActivityB中添加展示数据的代码,如下:
Java代码
- public class ActivityB extends Activity {
- private Button button;
- private TextView textView;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.layout_for_b);
- // 设置当前的的Activity的标题,以作为标记使用
- setTitle("这是Activity B");
- // 获取布局文件中的button和textView
- button = (Button) findViewById(R.id.b_button);
- textView = (TextView) findViewById(R.id.show_tv);
- String show = getData();
- //让textView显示取出来的数据
- if (show != null){
- textView.setText(show);
- } else {
- textView.setText("nothing");
- }
- // 给button设置文字
- button.setText("B跳A");
- // button添加监听事件
- button.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- // 调用AtoB
- BtoA();
- }
- });
- }
- public String getData(){
- Bundle extra = new Bundle();
- extra = getIntent().getExtras();
- if (extra != null){
- return extra.getString("intent_bundle");
- }else {
- return null;
- }
- }
- public void BtoA() {
- // intent很重要,是两个Activity之间的纽带
- Intent in = new Intent();
- // 使用intent连接两个Activity,一个参数是当前的上下文(context),还有一个是要切换到的Activity主类
- in.setClass(this, ActivityA.class);
- // 跳转
- startActivity(in);
- }
- }
运行效果截图如下:
Activity学习(五)——Bundle机制
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。