Android中activity之間如何傳遞Hashmap資料
阿新 • • 發佈:2019-02-05
我的使用場景是當一個頁面需頁面中的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());
}
}