zoukankan      html  css  js  c++  java
  • Bundle的用法

    一、API文档说明

      1.介绍

        用于不同Activity之间的数据传递

      1.重要方法

        clear():清除此Bundle映射中的所有保存的数据。

        clone():克隆当前Bundle

        containsKey(String key):返回指定key的值

        getString(String key):返回指定key的字符

        hasFileDescriptors():指示是否包含任何捆绑打包文件描述符

        isEmpty():如果这个捆绑映射为空,则返回true

        putString(String key, String value):插入一个给定key的字符串值

        readFromParcel(Parcel parcel):读取这个parcel的内容

        remove(String key):移除指定key的值

        writeToParcel(Parcel parcel, int flags):写入这个parcel的内容

    二、实例

     1 public class BundleDemo extends Activity {  
     2     private EditText etName;  
     3     Button btn;  
     4   
     5     /* 
     6     * (non-Javadoc) 
     7     * @see android.app.Activity#onCreate(android.os.Bundle) 
     8     */  
     9     @Override  
    10     protected void onCreate(Bundle savedInstanceState) {  
    11         // TODO Auto-generated method stub  
    12         super.onCreate(savedInstanceState);  
    13         setContentView(R.layout.bundle);  
    14           
    15         etName = (EditText) findViewById(R.id.etname);  
    16         btn = (Button) findViewById(R.id.btn);  
    17           
    18         btn.setOnClickListener(new OnClickListener() {  
    19             @Override  
    20             public void onClick(View v) {  
    21                 String info = etName.getText().toString();  
    22                 Bundle bundle = new Bundle();  
    23   
    24                   //保存输入的信息  
    25                 bundle.putString("name", info);  
    26                 Intent intent=new Intent(BundleDemo.this,BundleDemo1.class);  
    27                 intent.putExtras(bundle);  
    28                 finish();  
    29                 startActivity(intent);  
    30             }  
    31         });  
    32     }  
    33 }  
     1 public class BundleDemo1 extends Activity {  
     2     private TextView etName;  
     3     /* (non-Javadoc) 
     4     * @see android.app.Activity#onCreate(android.os.Bundle) 
     5     */  
     6     @Override  
     7     protected void onCreate(Bundle savedInstanceState) {  
     8         // TODO Auto-generated method stub  
     9         super.onCreate(savedInstanceState);  
    10         setContentView(R.layout.b1);  
    11   
    12         etName=(TextView)findViewById(R.id.txtname);  
    13         Bundle b=getIntent().getExtras();  
    14         //获取Bundle的信息  
    15         String info=b.getString("name");  
    16         etName.setText("您的姓名:"+info);  
    17     }  
    18 }  

    三、与SharedPreferences的区别

      SharedPreferences是简单的存储持久化的设置,就像用户每次打开应用程序时的主页,它只是一些简单的键值对来操作。它将数据保存在一个xml文件中

      Bundle是将数据传递到另一个上下文中或保存或回复你自己状态的数据存储方式。它的数据不是持久化状态。

  • 相关阅读:
    Redis-cluster集群【第二篇】:redis持久化
    Redis-cluster集群【第一篇】:redis安装及redis数据类型
    django2.0 官方中文文档地址
    jenkins设置CSRF 协议(CRUMB值设置)
    elasticsearch-dump 迁移es数据 (elasticdump)
    大独裁者最后演讲台词
    面向对象的弊端是什么(转)
    IntelliJ IDEA 破解
    Django 2.0.1 官方文档翻译:接下来读什么(page 14)
    Django 2.0.1 官方文档翻译: 高级教程:如何编写可重用的app (page 13)
  • 原文地址:https://www.cnblogs.com/cct1314520/p/6528261.html
Copyright © 2011-2022 走看看