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

本文介绍在Android中如何在不同Activity之间传递HashMap数据,特别是在一个Activity的ListView需要使用另一个Activity的HashMap数据时的操作步骤。发送方通过自定义类进行数据封装,接收方进行数据解析和使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我的使用场景是当一个页面需页面中的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());



    }
}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值