如何使用 Bundle  传递数据? 最近在学习Android的时候,不知道 如何使用Bunndle传递对象? 我们可以通过 Serizlizable 实现。本质就是 将 自定义的对象,转化为 Serizliable 对象。 之后在用的时候 再取出来。 存数据 Void  putSerializable(String key,Serializble value);  取数据: Serializanle getSerizlizble(String key);

代码:  mianActivity.java
package com.example.serilizaldemo;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.TextView;public class MainActivity extends Activity {private TextView title;private TextView url;private Button button;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);title = (TextView)this.findViewById(R.id.title);url = (TextView)this.findViewById(R.id.url);button = (Button)this.findViewById(R.id.button1);final Game game = new Game();game.setTitle(title.getText()+"");game.setUrl(url.getText()+"");button.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubIntent intent = new Intent(MainActivity.this,SecondActiviity.class);//1 封装 序列化Bundle bundle = new Bundle();bundle.putSerializable("love", game);intent.putExtra("game", bundle);startActivity(intent);}});}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}}

secondActivity
package com.example.serilizaldemo;import java.io.Serializable;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.util.Log;public class SecondActiviity extends Activity {private static final String Tag= "SecondActiviity";public SecondActiviity() {// TODO Auto-generated constructor stub}@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.second);Intent intent = getIntent();Bundle bundle = intent.getBundleExtra("game");//2  反序列化! 取出数据。Serializable obj = bundle.getSerializable("love");if(obj != null && obj instanceof Game){Game g = (Game)obj;Log.i(Tag, "--url="+g.getUrl());Log.i(Tag, "--title="+g.getTitle());}Log.i(Tag, "--title=");}}

3 Game 的可序列化
package com.example.serilizaldemo;import java.io.Serializable;import java.util.List;//实现 可序列化  实现 可续列话 接口public class Game implements Serializable{//定义自己的序号private final static long serialVersionUID = 1234567890L;private String title;private String url;private long fileSize;//private List list;public Game() {// TODO Auto-generated constructor stub}public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public String getUrl() {return url;}public void setUrl(String url) {this.url = url;}public long getFileSize() {return fileSize;}public void setFileSize(long fileSize) {this.fileSize = fileSize;}}


总结: Bundle 如何传递 对象?
   序列化与反序列化
   通过序列化     封装对象。
   通过反序列化 解析对象。
   自定义类 如何实现 序列化? 
   就是实现 serializable
private final static long serialVersionUID = 1234567890L;


赠送:
     基础数据 和 集合 是 可序列化的,
     自定义的 类 需要实现 serializable 才可以 实现可序列化!

        

更多相关文章

  1. “罗永浩抖音首秀”销售数据的可视化大屏是怎么做出来的呢?
  2. Nginx系列教程(三)| 一文带你读懂Nginx的负载均衡
  3. 不吹不黑!GitHub 上帮助人们学习编码的 12 个资源,错过血亏...
  4. Android实现RecyclerView的下拉刷新和上拉加载更多
  5. 详解Android中通过Intent类实现组件间调用的方法
  6. android 中 startActivityForResult 的使用方法
  7. Android(安卓)- GET请求,POST请求,数据提交,编码,HttpClient,async-ht
  8. Android(java)学习笔记108:通过反射获取私有构造方法并且使用
  9. Android(安卓)RecyclerView使用介绍

随机推荐

  1. Android(安卓)GreenDao数据库使用
  2. Android(安卓)Audio Focus的应用(request
  3. Okhttp封装
  4. android html5网页定位
  5. Android(安卓)SDK各个版本API的特性及兼
  6. Android(安卓)应用界面开发笔记
  7. android studio gradle 更新匹配问题
  8. android 打包混淆报错问题
  9. 微软新版命令行界面:Windows Terminal,开源
  10. Android欢迎页面WelcomeActivity实现