zoukankan      html  css  js  c++  java
  • Android之Bundle传递数据详解与实例及Bundle与SharedPreferences的区别

    效果如下:

    初始界面

    输入信息

    “确定”以后

    一、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的内容

    二、实例

      

    public class BundleDemo extends Activity {
     private EditText etName;
     Button btn;

     /*
      * (non-Javadoc)
      *
      * @see android.app.Activity#onCreate(android.os.Bundle)
      */
     @Override
     protected void onCreate(Bundle savedInstanceState) {
      // TODO Auto-generated method stub
      super.onCreate(savedInstanceState);

      setContentView(R.layout.bundle);

      etName = (EditText) findViewById(R.id.etname);
      btn = (Button) findViewById(R.id.btn);
      btn.setOnClickListener(new OnClickListener() {

       @Override
       public void onClick(View v) {
        String info = etName.getText().toString();
        Bundle bundle = new Bundle();

      //保存输入的信息
        bundle.putString("name", info);
        Intent intent=new Intent(BundleDemo.this,BundleDemo1.class);
       intent.putExtras(bundle);
       finish();
       startActivity(intent);
       }
      });

     }

    }

    public class BundleDemo1 extends Activity {
    private TextView etName;
     /* (non-Javadoc)
      * @see android.app.Activity#onCreate(android.os.Bundle)
      */
     @Override
     protected void onCreate(Bundle savedInstanceState) {
      // TODO Auto-generated method stub
      super.onCreate(savedInstanceState);
      
      setContentView(R.layout.b1);
      
      etName=(TextView)findViewById(R.id.txtname);
      Bundle b=getIntent().getExtras();
      //获取Bundle的信息
      String info=b.getString("name");
      etName.setText("您的姓名:"+info);
     }

    }

    三、与SharedPreferences的区别

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

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

  • 相关阅读:
    CSS换行和省略号
    html+canvas实现很真实的下雨雨落
    CSS取消鼠标点击事件
    js某时间与当前时间差
    uniapp微信小程序canvas隐藏
    canvas生成圆图和微信小程序canvas圆图
    uniapp微信小程序canvas绘图插入网络图片不显示
    uniapp微信小程序分享(朋友圈分享)
    关于sure 等同根词的演化
    Stress and rhythm in English pronunciation
  • 原文地址:https://www.cnblogs.com/salam/p/1862730.html
Copyright © 2011-2022 走看看