Android中使用Intent在Activity之间传递对象(使用Serializable或者Parce

2019-12-10 19:14:24王振洲

4.在包com.andy.testdemo中修改TestActivity.java类,同时在该包中添加类SerializableDemo和ParcelableDemo,分别继承了Activity类和分别显示Person对象和Police对象的数据。代码如下:

package com.andy.testdemo; 
import com.andy.entity.Person; 
import com.andy.entity.Police; 
import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
public class TestActivity extends Activity { 
private Button sButton,pButton; 
public final static String SER_KEY = "com.andy.ser"; 
public final static String PAR_KEY = "com.andy.par"; 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.main); 
sButton = (Button)findViewById(R.id.serButton); 
sButton.setOnClickListener(new View.OnClickListener() { 
@Override 
public void onClick(View v) { 
SerializeMethod(); 
} 
}); 
pButton = (Button)findViewById(R.id.parButton); 
pButton.setOnClickListener(new View.OnClickListener() { 
@Override 
public void onClick(View v) { 
PacelableMethod(); 
} 
}); 
} 
/** 
* Serializeable传递对象的方法 
*/ 
private void SerializeMethod(){ 
Person mPerson = new Person(); 
mPerson.setName("andy"); 
mPerson.setAge(26); 
Intent mIntent = new Intent(this,SerializableDemo.class); 
Bundle mBundle = new Bundle(); 
mBundle.putSerializable(SER_KEY,mPerson); 
mIntent.putExtras(mBundle); 
startActivity(mIntent); 
} 
/** 
* Pacelable传递对象方法 
*/ 
private void PacelableMethod(){ 
Police mPolice = new Police(); 
mPolice.setName("I am Police"); 
mPolice.setWorkTime(2008); 
Intent mIntent = new Intent(this,ParcelableDemo.class); 
Bundle mBundle = new Bundle(); 
mBundle.putParcelable(PAR_KEY, mPolice); 
mIntent.putExtras(mBundle); 
startActivity(mIntent); 
} 
}

SerializableDemo.java类

package com.andy.testdemo; 
import com.andy.entity.Person; 
import android.app.Activity; 
import android.os.Bundle; 
import android.widget.TextView; 
public class SerializableDemo extends Activity { 
@Override 
public void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
TextView mTextView = new TextView(this); 
Person mPerson = (Person)getIntent().getSerializableExtra(TestActivity.SER_KEY); 
mTextView.setText("You name is: " + mPerson.getName() + "/n"+ 
"You age is: " + mPerson.getAge()); 
setContentView(mTextView); 
} 
}