Activity间利用Bundle传递ArrayList

目的:
Activity间传递ArrayList<HashMap<String,String>>
方法:
1 利用bundle.putSerializable("arrayList",arrayList)添加欲传送的ArrayList
2 利用intent.putExtras(bundle)添加Bundle
3 利用startActivity(intent)启动下一个Activity

//跳转前Activity
package cn.com.brave;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class TestArrayListHashMapActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Button button=(Button) findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
			@Override
			public void onClick(View v) {
				    Map<String, String> map1 = new HashMap<String, String>();
			        map1.put("name", "亮哥");
			        Map<String, String> map2 = new HashMap<String, String>();
			        map2.put("age", "25");
			        Map<String, String> map3 = new HashMap<String, String>();
			        map3.put("trait", "帅气");

			        ArrayList<Map<String, String>> arrayList = new ArrayList<Map<String, String>>();
			        arrayList.add(map1);
			        arrayList.add(map2);
			        arrayList.add(map3);

			        Bundle bundle = new Bundle();
			        bundle.putSerializable("arrayList", arrayList);

			        Intent intent = new Intent(TestArrayListHashMapActivity.this, SecondActivity.class);
			        intent.putExtras(bundle);
			        startActivity(intent);			

			}
		});
    }
}

//跳转后Activity
package cn.com.brave;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.Toast;
public class SecondActivity extends Activity {
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		Intent intent = getIntent();
		Bundle buldle = intent.getExtras();
		ArrayList<HashMap<String, String>> list =((ArrayList<HashMap<String, String>>) buldle.getSerializable("arrayList"));
		for(Iterator<HashMap<String, String>> it=list.iterator();it.hasNext();){
			HashMap<String, String> tempMap=it.next();
			Set<String> set=tempMap.keySet();
			for(Iterator<String> ito=set.iterator();ito.hasNext();){
				String s=ito.next();
				System.out.println(s+"="+tempMap.get(s));
			}
		}
		Toast.makeText(this, "跳转成功", 0).show();
	}
}

//备注:
//布局文件很简单,只有一个Button.在此略去main.xml文件
时间: 2024-11-13 08:57:28

Activity间利用Bundle传递ArrayList的相关文章

activity-Android Activity间bitmap的传递

问题描述 Android Activity间bitmap的传递 在Activity间怎样优雅的传递比较大的bitmap?问题背景是一个Activity将图传至另一个Activity,对图进行处理后传回显示. 解决方案 [android-tips]Activity间数据传递之Bundle和SharedPreferencesActivity间通过Intent传递Bitmap对象Android Activity间传递自定义类的对象 解决方案二: 1.将Activity1中的bitmap保存到文件中,将

Android 不同Activity间数据的传递 Bundle对象的应用_Android

在应用中,可能会在当跳转到另外一个Activity的时候需要传递数据过去,这时就可能用Bundle对象: 在MainActivity中,有一个导航至BActivity的Intent, Intent 复制代码 代码如下: { Intent intent = new Intent(Context context, Class<?> class); //new一个Bundle对象,并将要传递的数据导入,Bunde相当于Map<Key,Value>结构    Bundle bundle =

Android 不同Activity间数据的传递 Bundle对象的应用

在应用中,可能会在当跳转到另外一个Activity的时候需要传递数据过去,这时就可能用Bundle对象: 在MainActivity中,有一个导航至BActivity的Intent, Intent复制代码 代码如下:{ Intent intent = new Intent(Context context, Class<?> class); //new一个Bundle对象,并将要传递的数据导入,Bunde相当于Map<Key,Value>结构    Bundle bundle = n

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

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

【android-tips】Activity间数据传递之Bundle和SharedPreferences

(转载请注明出处:http://blog.csdn.net/buptgshengod)  1.介绍    对于初学者android不同activity间的数据传输一直是一个难题,主要的解决方法主要有两种一种是用Bundle传输数据,一种是用SharedPreferences.两者的区别,一般来讲SharedPreferences用来存储轻型数据,保存在xml里,可以持久保存.反观Bundle可以传输很多中数据,但是不持久. 2.具体实现方法   Bundle    在发送方class A Bun

Serializable与Parcelable传递对象详解(activity间传递对象方式)

先了解什么是序列化? 序列化是什么:  序列化就是将一个对象的状态(各个属性量)保存起来,然后在适当的时候再获得.  序列化分为两大部分:序列化和反序列化.序列化是这个过程的第一部分,将数据分解成字节流,以便存储在文件中或在网络上传输.反序列化就是打开字节流并重构对象.对象序列化不仅要将基本数据类型转换成字节表示,有时还要恢复数据.恢复数据要求有恢复数据的对象实例  序列化的什么特点:  如果某个类能够被序列化,其子类也可以被序列化.声明为static和transient类型的成员数据不能被序列

Android利用Theme自定义Activity间的切换动画_Android

大多Android系统默认Activity间的动画切换效果为,右边滑入,左边滑出:有时候我们的需求可能是要求所有Activity的切换为淡入淡出的效果,这时候就可能需要改变一下默认的切换风格. 下面开始实现: 首先在res文件夹下建立anim文件夹,然后在里面建立fade_in.xml和fade_out.xml两个动画资源 fade_in.xml <?xml version="1.0" encoding="utf-8"?> <alpha xmlns

Android开发之多个Activity间的交互

一.基础知识: 1.一个Intent对象包含了一组信息: 1. Component name 指定启动的Activity 2. Action 要做什么 3. Data 传送数据 4. Category 5. Extras 键值对 6. Flags 2.Intent基本用法: [java] view plaincopyprint?// 生成一个Intent对象 Intent intent = new Intent(); intent.putExtra("testIntent", &quo

android-Android编程两activity间切换问题

问题描述 Android编程两activity间切换问题 LZ手头一个Android程序有两个activity,其中副activity主要就是画个图,且画图需要使用主activity中的一个数组的数据,我明明是先把有关数值填进了数组,完成了数组的处理之后才用intent开启的第二个activty,但实际上副activity使用的还是数组在未处理前的全零状态进行的与画图有关的运算,代码如下 主activity的声明 ``` private LayoutInflater layoutInflater