要将一个对象传递给另一个活动,您需要实现Parcelable。
仔细阅读为Android编写Parcelable类。在此,他们使用HashMap来存储值并将对象传递给另一个类。
或者
创建一个名为ObjectA
的类。在该类中,我使用了所有setter和getter方法。
package com.ParcableExample.org;
import android.os.Parcel;
import android.os.Parcelable;
public class ObjectA implements Parcelable
{
private String strValue = null;
private int intValue = 0;
public ObjectA()
{
}
public ObjectA(Parcel in)
{
readFromParcel(in);
}
public String getStrValue()
{
return this.strValue;
}
public void setStrValue(String strValue)
{
this.strValue = strValue;
}
public Integer getIntValue()
{
return this.intValue;
}
public void setIntValue(Integer intValue)
{
this.intValue = intValue;
}
@Override
public int describeContents()
{
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags)
{
dest.writeString(this.strValue);
dest.writeInt(this.intValue);
}
public void readFromParcel(Parcel in)
{
this.strValue = in.readString();
this.intValue = in.readInt();
}
@SuppressWarnings("unchecked")
public static final Parcelable.Creator CREATOR = new Parcelable.Creator()
{
@Override
public ObjectA createFromParcel(Parcel in)
{
return new ObjectA(in);
}
@Override
public Object[] newArray(int size)
{
return new ObjectA[size];
}
};
}
然后创建一个Activity,用于将对象发送到另一个Activity。
package com.ParcableExample.org;
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 ParcableExample extends Activity
{
private Button btnClick;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
initControls();
}
private void initControls()
{
btnClick = (Button)findViewById(R.id.btnClick);
btnClick.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View arg0)
{
ObjectA obj = new ObjectA();
obj.setIntValue(1);
obj.setStrValue("Chirag");
Intent i = new Intent(ParcableExample.this,MyActivity.class);
i.putExtra("com.package.ObjectA", obj);
startActivity(i);
}
});
}
}
现在最后创建另一个活动,读取对象并从中获取值。
package com.ParcableExample.org;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
public class MyActivity extends Activity
{
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Bundle bundle = getIntent().getExtras();
ObjectA obj = bundle.getParcelable("com.package.ObjectA");
Log.i("---------- Id ",":: "+obj.getIntValue());
Log.i("---------- Name ",":: "+obj.getStrValue());
}
}