[英]Android Parcelable Implementation with ArrayList<Object>
所以我正在实现一个测试应用程序,在其中我将创建一个Tournament对象作为Parcelable并将在意图之间传递它们。 比赛包括:。 锦标赛名称。 规则 。 匹配玩家的规则(随机/手动)。 玩家阵列列表
这是我到目前为止:
Tournament.java
public class TournamentData implements Parcelable {
private String tourName;
private int bestOf;
private boolean isRandom;
private ArrayList<Player> playerList;
public TournamentData(String name, int tourBestOf, boolean random) {
this.tourName = name;
this.bestOf = tourBestOf;
this.isRandom = random;
}
public void addPlayer(Player newPlayer) {
this.playerList.add(newPlayer);
}
public ArrayList<Player> getPlayerList() {
return playerList;
}
/* getters and setters excluded from code here */
public int describeContents() {
// TODO Auto-generated method stub
return 0;
}
public void writeToParcel(Parcel out, int flags) {
// TODO Auto-generated method stub
}
Player.java
public class Player {
private String playerName;
private String playerEmail;
public Player(String name, String email) {
this.playerName = name;
this.playerEmail = email;
}
/* getter and setters are excluded */
}
我是Android的新手(我的意思是非常非常新的;我想是10个小时)。 所以我想知道:。 是否可以根据具有ArrayList的Tournament对象的规范创建Parcelable对象? 。 如何将所有锦标赛数据存储到Parcelable对象中并从其他活动访问它们? (即A和B)。
这里是代码,告诉你如何parri a arraylist
public class ParcleListTopic implements Parcelable{
private List<ParcleTopic> list;
private ArrayList<HoldListTopic> listh=new ArrayList<HoldListTopic>();
public ArrayList<HoldListTopic> GetListTopic()
{
for(int i=0;i<list.size();i++)
{
listh.add(list.get(i).GetHold());
}
return listh;
}
public void writeToParcel(Parcel dest, int flags) {
dest.writeTypedList(list);
}
public ParcleListTopic(Parcel in)
{
in.readTypedList(list,ParcleTopic.CREATOR);
}
public ParcleListTopic(List<ParcleTopic> list)
{
this.list=list;
}
public static final Parcelable.Creator<ParcleListTopic> CREATOR = new Parcelable.Creator<ParcleListTopic>(){
public ParcleListTopic createFromParcel(Parcel s)
{
return new ParcleListTopic(s);
}
public ParcleListTopic[] newArray(int size)
{
return new ParcleListTopic[size];
}
};
public int describeContents() {
// TODO Auto-generated method stub
return 0;
}
}
public class ParcleTopic implements Parcelable
{
HoldListTopic hold;
public ParcleTopic(HoldListTopic hold)
{
this.hold=hold;
}
public HoldListTopic GetHold()
{
return hold;
}
public int describeContents()
{
return 0;
}
public void writeToParcel(Parcel dest, int flags)
{
dest.writeString(hold.Title);
dest.writeString(hold.Date);
dest.writeInt(hold.NumberComment);
dest.writeInt(hold.ID);
}
public ParcleTopic(Parcel in)
{
hold.Title=in.readString();
hold.Date=in.readString();
hold.NumberComment=in.readInt();
hold.ID=in.readInt();
}
public static final Parcelable.Creator<ParcleTopic> CREATOR = new Parcelable.Creator<ParcleTopic>()
{
public ParcleTopic createFromParcel(Parcel s)
{
return new ParcleTopic(s);
}
public ParcleTopic[] newArray(int size)
{
return new ParcleTopic[size];
}
}; }
很多这些东西都变成了RPC - 我会用传统的Java编写工作的主要部分然后尝试制作......
是的,果然:
可以通过IBinder发送的消息(数据和对象引用)的容器。 Parcel可以包含将在IPC的另一侧展开的扁平数据(使用此处用于编写特定类型的各种方法,或通用Parcelable接口),以及对将导致另一方接收的实时IBinder对象的引用代理IBinder与包裹中的原始IBinder连接。
换句话说,Parcel是一种进程间通信的形式....
您必须重新考虑基本模型,因为这不是10,000个请求第二个服务器 - 它是一个手持式消费者设备,如果必须由于它在哪里运行,它可以将指针从流程表中拉出来
我已经学会了访问http://android-developers.blogspot.com/?hl=en上的博客标签
要非常小心,不要深入挖掘需要在工作线程中的内容,并注意Java易于使用的丰富同步原语
多线程性能
Tim Bray于2010年7月19日上午11:41发布[本文由Gilles Debunne撰写,他是Android组的一名工程师,喜欢多任务。 - 蒂姆布雷]
它在博客中 - 更好的起点
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.