网友通过本文主要向大家介绍了android serializable,serializable对象,serializable,serializable接口作用,serializable作用等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
android:Activity数据传递之对象(Serializable)
Activity数据传递之基本数据类型在这篇文章中,我写了通过putExtra()方法在activity之间传递基本数据类型
但是如果我们想传递对象还用这种方法会发现报错,因为putExtra()不能接收Obj对象类型的
就像下面这样 我们创建一个Obj对象
package com.example.activity; public class Obj { String name; public String getName(){ return name; } public void setName(String name){ this.name=name; } }如果还是像传递基本数据类型那样 我们看看
会报错,那么怎么解决呢 ?按着alt+/打开android的联想功能 我们会发现这个方法
putExtra(String name, Seralizable value)
putExtra可以传递可序列化的对象,所以我们只要在Obj类中实现这个接口就行了
下面附上运行结果
在这里只附上MainActivity OtherActivity Obj 三个类
MainActivity
package com.example.activity; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class MainActivity extends Activity { private Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button=(Button) findViewById(R.id.button1); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub Intent intent=new Intent(); intent.setClass(MainActivity.this, OtherActivity.class); Obj obj=new Obj(); obj.setName("我是苏苏"); intent.putExtra("姓名", obj); startActivity(intent); } }); } }OtherActivity
package com.example.activity; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.widget.Toast; public class OtherActivity extends Activity{ @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.activity_other); Bundle bundle=getIntent().getExtras(); Obj obj=(Obj) bundle.get("姓名"); Toast.makeText(OtherActivity.this, obj.getName(), Toast.LENGTH_LONG).show(); } }
Obj
package com.example.activity; import java.io.Serializable; public class Obj implements Serializable{ String name; public String getName(){ return name; } public void setName(String name){ this.name=name; } }