Android Bundle

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

  2.重要方法
    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.介绍
        用于不同Activity之间的数据传递
      2.重要方法
        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的内容
    Android2Activity.java

    package Android2.test; 

    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.EditText; 

    public class Android2Activity extends Activity { 

        private EditText et = null;
        private Button button = null;
        @Override
        public void onCreate(Bundle savedInstanceState)
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            et = (EditText)findViewById(R.id.edit);
            button = (Button)findViewById(R.id.button);
            button.setOnClickListener(new ButtonListener());
        } 

        public class ButtonListener implements OnClickListener{ 

            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                Bundle bundle = new Bundle();
                bundle.putString("Name", et.getText().toString());
                Intent intent=new Intent(Android2Activity.this,bundle.class);
                intent.putExtras(bundle);
                startActivity(intent);
            }
        }
    } 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
    <EditText
        android:id="@+id/edit"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"/>
    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="start"/>
</LinearLayout> 
package Android2.test; 

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView; 

public class bundle extends Activity{
    private TextView text = null;
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.bundle);
        Intent intent = getIntent();
        Bundle bundle = intent.getExtras();
        text = (TextView)findViewById(R.id.text);
        text.setText(bundle.getString("Name"));
    } 

} 
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
    <TextView
        android:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        />
</LinearLayout> 
时间: 2024-07-29 12:35:57

Android Bundle的相关文章

android bundle 对象 序列化

Android使用Intent.putSerializable()进行数据传递,或者使用Bundle进行数据传递,实质上都是进行的Serializable数据的操作,说白了都是传递的原数据的一份拷贝,因此通过对象的传递来控制Android应用是不现实的 源代码如下了: 1 import android.app.Activity; 2 import android.content.Intent; 3 import android.os.Bundle; 4 import android.util.L

android技巧:Activity间数据传递之Bundle和SharedPreferences

1.介绍 对于初学者android不同activity间的数据传输一直是一个难题,主要的解决方法主要有两种一种是用Bundle传输数据,一种是用SharedPreferences.两者的区别,一般来讲SharedPreferences用来存储轻型数据,保存在xml里,可以持久保存.反观Bundle可以传输很多中数据,但是不持久. 2.具体实现方法  Bundle 在发送方class A Bundle bundle = new Bundle(); //保存输入的信息 bundle.putStrin

Android开发中的Fragment和Acitvity通信

上一篇我们讲到与Fragment有关的常用函数,既然Fragment被称为是"小Activity",现在我们来讲一下Fragment如何与Acitivity通信.如果上一篇还有不懂得,可以再看一下.传送门. Fragment与Activity通信的方式如下: 一.通过初始化函数提供 1.在动态添加Fragment的过程中,我们在Activity中通过Fragment.setArguments()的方法为Fragment提供数据: 2.在Fragment中,在onAttach()函数中通

Android开发入门(二)使用意图 2.4 使用Intent传递数据

除了能从一个Activity返回数据结果之外,向一个Activity传递数据也是很常用的. 1. 新建一个 工程,PassData. 2. main.xml中的代码. <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width

Android中的常量 DEFAULT_KEYS_SHORTCUT

1.  关于 DEFAULT_KEYS_SHORTCUT  的 API文档介绍 Use with setDefaultKeyMode (int) to execute a menu shortcut in default key handling. That is, the user does not need to hold down the menu key to execute menu shortcuts. 从字面上看,其含义是指,将默认的按键 输入作为菜单快捷键进行处理. 也就是说,用

android中使用startActivityForResult回传数据

假设:我这里有两个Activity:A和B从A中向B中传递数据的时候采用的是Bundle封装数据,然后从A中跳转到B中,当B有需求 将数据封装起来回传给A并跳转回A. 那么A中接收数据时还要先判断Bundle是否为空,因为第一次访问A的时候(即B还没 有回传的时候),Bundle是为空的,这样显然是比较麻烦的,不明智的做法. 还好startActivityForResult来做跳转给了 我们更好的解决办法: 1.跳转的时候不是采用startActivity(intent) 这个方法,而是star

Android开发: fragment解析及案例

  Fragment 设计理念 在设计应用时特别是Android 应用 ,有众多的分辨率要去适应,而fragments 可以让你在屏幕不同的屏幕上动态管理UI.例如:通讯应用程序(QQ),用户列表可以在左边,消息窗口在右边的设计.而在手机屏幕用户列表填充屏幕当点击某一用户时,则弹出对话窗口的设计,如下图: 开发: fragment解析及案例-fragment源码解析"> Fragment的生命周期  每一个fragments 都有自己的一套生命周期回调方法和处理自己的用户输入事件. 对应生

Android的Handler几种常见的传值方式

package com.handlerThread; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os.HandlerThread; import android.os.Looper; import android.os.Message; public class handlerThread2 extends Activity { @Overrid

Android原生嵌入React Native详解_Android

1.首先集成的项目目录 我使用的是直接按照react-native init Project 的格式来导入的,也就是说,我的Android项目目录是跟node_modules是在一个目录下的. 我们init完项目之后,项目初始化完成了,这时候我们可以用命令react-native run-android直接运行项目,至于怎么调试,之前已经说过. 说一下我们怎么开发和运行分开吧,我们开发一般会选择webstrom,开发后我们会Android和ios的编译分开. 启动npm 下面说一下android