安卓数据包的传递 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")));//把数据包的数据展现出来
    }
}
时间: 2024-07-28 19:23:48

安卓数据包的传递 Bundle的相关文章

Linux内核--网络栈实现分析(七)--数据包的传递过程(下)

本文分析基于Linux Kernel 1.2.13 原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7545855 更多请查看专栏,地址http://blog.csdn.net/column/details/linux-kernel-net.html 作者:闫明 注:标题中的”(上)“,”(下)“表示分析过程基于数据包的传递方向:”(上)“表示分析是从底层向上分析.”(下)“表示分析是从上向下分析. 在博文Linux内核--网络栈

Linux内核--网络栈实现分析(二)--数据包的传递过程(上)

本文分析基于Linux Kernel 1.2.13 原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7492423 更多请看专栏,地址http://blog.csdn.net/column/details/linux-kernel-net.html 作者:闫明 注:标题中的”(上)“,”(下)“表示分析过程基于数据包的传递方向:”(上)“表示分析是从底层向上分析.”(下)“表示分析是从上向下分析. 上一篇博文中我们从宏观上分析了L

CORE网络数据包接收传递过程分析

能够接收实际网络流量是CORE的一个显著优点,这使得已有的系统能方便地接入虚拟网络进行模拟.CORE对网络设备的虚拟是通过LXC技术来实现的,而对网络的虚拟则是通过虚拟网卡(veth).网桥(Bridge).Quagga来实现的.本文档主要通过分析CORE中网络数据传递过程,来理解CORE网络模拟. 拓扑结构 为了方便描述,以如图1所示拓扑结构为例子,分析数据流从网卡eth0到虚拟节点n2的过程. 图1 示例拓扑 虚拟网络创建由CORE后台根据前台的拓扑结构和配置,执行相应的命令进行实现,如下:

请听题:一个数据包如何在网络中传递?

传统的OSI参考模型和TCP/IP模型的关系和区别 TCP/IP模型 在网络上,一个协议对应于管理系统之间如何相互通信的规则 OSI模型和TCP/IP模型是现在网络中常用的协议 指定通信的规则为了保障客户的权益(在客户的现网中 会出现不同厂商的网络设备)目前应用的比较广泛的是TCP/IP模型 TCP/IP模型 应用层:APP层 腾讯QQ 微信 开发工程师 程序员DHCP协议 DNS协议等等传输层:TCP协议 UDP协议 防火墙设备 安全工程师TCP协议 UDP协议网络层:(三层)路由器或者三层交

数据包的接收过程

网络栈的层次结构: 我们就从最底层开始追溯一个数据包的传递流程. 1.网络接口层 * 硬件监听物理介质,进行数据的接收,当接收的数据填满了缓冲区,硬件就会产生中断,中断产生后,系统会转向中断服务子程序. * 在中断服务子程序中,数据会从硬件的缓冲区复制到内核的空间缓冲区,并包装成一个数据结构(sk_buff),然后调用对驱动层的接口函数netif_rx()将数据包发送给链路层.该函数的实现在net/inet/dev.c中,(在整个网络栈实现中dev.c文件的作用重大,它衔接了其下的驱动层和其上的

Linux内核--网络栈实现分析(六)--应用层获取数据包(上)

本文分析基于内核Linux 1.2.13 原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7541907 更多请看专栏,地址http://blog.csdn.net/column/details/linux-kernel-net.html 作者:闫明 注:标题中的”(上)“,”(下)“表示分析过程基于数据包的传递方向:”(上)“表示分析是从底层向上分析.”(下)“表示分析是从上向下分析. 上篇博文分析了传输层从网络层获取数据包后将

前端学习——使用Ajax方式POST JSON数据包

0.前言 本文解释如何使用Jquery中的ajax方法传递JSON数据包,传递的方法使用POST(当然PUT又有时也是一个不错的选择).POST JSON数据包相比标准的POST格式可读性更好些,层次结构也更清晰. 为了说明问题,前端和后端较为简单,重点突出AJAX的应用. [前端]--add-post-json.html 图1 add页面 [后端]--add-post-json.php <?php // 返回JSON格式 header('Content-Type:application/jso

出了网关,网络数据包的经历

出了网关,网络包的经历 数据包经过路由从局域网出去后,就变得复杂起来.数据包的传递会面临各种选择,比如最重要的路径选择. 路径选择就是选择最短路径,也即最优路径来传递网络包到目的地. 在现在网络世界,个人发出的各种网络包的传递一般经过n多路由,每个路由就相当于关卡,有一些策略算法来保证网络包的正常传输. 所以这里涉及到路由的配置.路由拥有一张路由表.一张路由表中会有多条路由规则.每一条规则至少包含这三项信息: 1.目的网络:这个包想去哪儿? 2.出口设备:将包从哪个口扔出去? 3.下一跳网关:下

使用fiddler抓安卓APP数据包并调试PHP程序

我有个这样的需求 要在安卓APP向服务器发起请求的时候调试PHP程序. 把目标分解开来,大概步骤如下 调试PHP使用ECLIPSE+XDEBUG,而XDEBUG触发断点需要get方法传递一个参数或者设置一个COOKIE,我使用的是COOKIE的方法(我认为这种方法比较好) 也就是说,要想办法让APP发起请求的时候带着COOKIE信息,因为APP开发我不熟悉,所以只能想别的办法,我的办法就是HOOK到请求,然后添加上COOKIE值 刚刚好,fiddler除了可以抓取HTTP数据包的能力之外,他也可