您的位置:首页 > 移动开发 > Android开发

大话android之传递值对象(1)----serializable篇

2016-05-10 16:04 429 查看
传递值对象,顾名思义就是将值对象进行交互,所实现的接口一般有两个,serializable跟Parcelable,  serializable是Java内置的序列话接口,它是全自动的实现简单方便。

360问答解释的serializable:继承了serializable 就是表示这个类可以序列化使用序列化保存数据比直接写在文件里更有安全性 而且读取的时候处理也简单还有一个更重要的用途就是在rmi和ejb使用的时候
作为参数传递的对象必须是serializable


以下是实现代码(最难不过.java 所以xml就不再写了)

首先是一个自定义数据对象

package com.example.note_9;

import java.io.Serializable;

import android.os.Parcel;
import android.os.Parcelable;
//创建一个Users类,利用get set方法封装两个对象,写一个构造方法也是必不可少的。在提取对象时会用到
public class Users implements Serializable{
private String name;
private int age;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}
public Users(String name,int age){
this.name=name;
this.age=age;
}

}
接下来是要跳转的两个页面

主页面

package com.example.note_9;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity {

private Object Button;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//千篇一律的鼠标事件代码
final Button btn=(Button)this.findViewById(R.id.btn);
btn.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//创建一个intent 往里面放跳转页面的两个页面
Intent i=new Intent(MainActivity.this,Second.class);
//putextra 第一个参数中放要放要提取的对象的主键名,   第二个参数实现类的对象并赋值
i.putExtra("Users", new Users("传参",20));
startActivity(i);
}
});

}

}


副页面

package com.example.note_9;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;

public class Second extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
Intent i=getIntent();
final TextView tv=(TextView)this.findViewById(R.id.tv);
//创建类的对象,并提取主键
Users user=(Users) i.getSerializableExtra("Users");
tv.setText(String.format("Users info(name=%s,age=%d)", user.getName(),user.getAge()));
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: