zoukankan      html  css  js  c++  java
  • 安卓数据包的传递 Bundle

    方法一:

    1、新建一个project,建立两个Activity,分别为MainActivity和Main2Activity

    2、MainActivity创建一个按钮,并设置其文本为:启动下一个Activity。在Main2Activity里创建一个Textview,并设置好其id

    3、在MainActivity里实现如下代码:

    public class MainActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            
            //创建并实现一个监听器
            findViewById(R.id.button1).setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    //监听器要做的事情
                   Intent i=new Intent(MainActivity.this,Main2Activity.class);//MainActivity和Main2Ativity连接起来 允许他们之间传递数据
                   // i.putExtra("data","nihao");//用putExtra把内容传送到另一个Activity,名字是data,值是nihao
    
                    Bundle b=new Bundle();
                    b.putString("name","xiaohong");
                    b.putInt("age",2);
                    i.putExtras(b);//传递Bundle打包的数据
    
                    startActivity(i);//启动第二个activity并把i传递过去
    
                }
            });
        }
    }

    4、在Main2Activity里实现如下代码:

    public class Main2Activity extends AppCompatActivity {
        private TextView tv;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main2);
    
            Intent i=getIntent();//因为Mian2Activity是通过intend来启动的,所以通过getIntend来获取与这个Activity相关的数据
            Bundle data=i.getExtras();//获取数据包
    
            tv=(TextView) findViewById(R.id.tv22);
            
          //  tv.setText(i.getStringExtra("data"));//因为MainActivity里通过putExtra传递时名字是data,值是nihao
            tv.setText(String.format("name=%s,age=%d",data.getString("name"),data.getInt("age")));//把数据包的数据展现出来
        }
    }


    5、运行效果如下:

    在第一张Activity里有一个Button,

    点击第一张的Button,另一个Activity启动,并出现传送的数据包内容

    --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    方法二:

    在MainActivity里实现如下代码:

    public class MainActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            //创建并实现一个监听器
            findViewById(R.id.button1).setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    //监听器要做的事情
                   Intent i=new Intent(MainActivity.this,Main2Activity.class);//MainActivity和Main2Ativity连接起来 允许他们之间传递数据
                   // i.putExtra("data","nihao");//用putExtra把内容传送到另一个Activity,名字是data,值是nihao
    
                    Bundle b=new Bundle();
                    b.putString("name","xiaohong");
                    b.putInt("age",2);
                    
                  //  i.putExtras(b);//传递Bundle打包的数据 //方法一
                    i.putExtra("data",b);//方法二:选择putExtra中的一个可以直接传递Bundle的函数
    
    
                    startActivity(i);//启动第二个activity并把i传递过去
    
                }
            });
        }
    }

    注:putExtra中有一个可以直接传递Bundle的函数,下图:

    在Main2Activity里实现如下代码:

    public class Main2Activity extends AppCompatActivity {
        private TextView tv;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main2);
    
            Intent i=getIntent();//因为Mian2Activity是通过intend来启动的,所以通过getIntend来获取与这个Activity相关的数据
            
            //Bundle data=i.getExtras();//方法一:获取数据包
            Bundle data=i.getBundleExtra("data");//方法二
    
            tv=(TextView) findViewById(R.id.tv22);
    
          //  tv.setText(i.getStringExtra("data"));//因为MainActivity里通过putExtra传递时名字是data,值是nihao
            tv.setText(String.format("name=%s,age=%d",data.getString("name"),data.getInt("age")));//把数据包的数据展现出来
        }
    }
  • 相关阅读:
    LeetCode 295. Find Median from Data Stream (堆)
    LeetCode 292. Nim Game(博弈论)
    《JavaScript 模式》读书笔记(4)— 函数2
    《JavaScript 模式》读书笔记(4)— 函数1
    《JavaScript 模式》读书笔记(3)— 字面量和构造函数3
    《JavaScript 模式》读书笔记(3)— 字面量和构造函数2
    《JavaScript 模式》读书笔记(3)— 字面量和构造函数1
    《JavaScript 模式》读书笔记(2)— 基本技巧3
    《JavaScript 模式》读书笔记(2)— 基本技巧2
    《JavaScript 模式》读书笔记(2)— 基本技巧1
  • 原文地址:https://www.cnblogs.com/menglihuakai/p/5765713.html
Copyright © 2011-2022 走看看