zoukankan      html  css  js  c++  java
  • 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); } }
  • 相关阅读:
    为什么 PCB 生产时推荐出 Gerber 给工厂?
    Fedora Redhat Centos 有什么区别和关系?
    【KiCad】 如何给元件给元件的管脚加上划线?
    MCU ADC 进入 PD 模式后出现错误的值?
    FastAdmin 生产环境升级注意
    EMC EMI 自行评估记录
    如何让你的 KiCad 在缩放时不眩晕?
    KiCad 5.1.0 正式版终于发布
    一次单片机 SFR 页引发的“事故”
    java基础之集合
  • 原文地址:https://www.cnblogs.com/sage-blog/p/4047907.html
Copyright © 2011-2022 走看看