Android中activity之间如何传递Hashmap数据

我的使用场景是当一个页面需页面中的listview中的hashmap的数据时要另一个,就要用到了传递hashmap数据。
在发送方,我的代码是这样的:

package cn.oddcloud.www.coffeestore.Test;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;

import java.util.HashMap;

import cn.oddcloud.www.coffeestore.R;

public class Main2Activity extends AppCompatActivity {
    HashMap<String,Object> map;
    Button button;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
        button= (Button) findViewById(R.id.button);
        map=new HashMap<>();//定义一个map,用来存储数据
        map.put("to","我是分子");//键值为to的放的值是;我是分子
                                //   也分子
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
            //跳转页面
                Intent intent=new Intent(Main2Activity.this,Main4Activity.class);
                //让hashmap实现可序列化则要定义一个实现可序列化的类。
                SerMap serMap=new SerMap();
                //传递map到SerMap 中的map,这样数据就会传递到SerMap 中的map中。
              serMap.setMap(map);
              //创建Bundle对象,存放实现可序列化的SerMap 
                Bundle bundle=new Bundle();
                bundle.putSerializable("KEY",serMap);
                //意图放置bundle变量
                intent.putExtras(bundle);
                startActivity(intent);

            }
        });
    }
}

自定义类

package cn.oddcloud.www.coffeestore.Test;

import java.io.Serializable;
import java.util.HashMap;

/**
 * Created by Administrator on 2016/5/8.
 */
public class SerMap  implements Serializable {
    public HashMap<String,Object> map;
    public  SerMap(){

    }

    public HashMap<String, Object> getMap() {
        return map;
    }

    public void setMap(HashMap<String, Object> map) {
        this.map = map;

    }
}

接收方:

package cn.oddcloud.www.coffeestore.Test;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.TextView;

import java.util.HashMap;

import cn.oddcloud.www.coffeestore.R;

public class Main4Activity extends AppCompatActivity {
   HashMap<String,Object> map;
TextView textView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main4);
        textView= (TextView) findViewById(R.id.tess);
        //获得意图
        Intent intent=getIntent();
        //得到数据集
        Bundle bundle=intent.getExtras();
        //获得自定义类
        SerMap serializableMap = (SerMap) bundle
                .get("KEY");
        map=serializableMap.getMap();
        textView.setText(map.get("to").toString()+map.get("too").toString());



    }
}

猜你喜欢

转载自blog.csdn.net/SHRDLU/article/details/51345842