2011-11-19 16 views
7

Bu yüzden, Parcelable olarak bir Turnuva nesnesini oluşturacağım ve bunları niyetler arasında ileteceğim bir test uygulaması uyguluyorum. Bir turnuva aşağıdakileri içerir: . Bir turnuva adı . Kural . Eşleşen oyuncular için kural (rastgele/manuel) .ArrayList ile Android Parcelable Uygulaması <Object>

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 */ 

}

: Oyuncular

bir dizi listesi Bu defa ne var Ben bir Android için m yeni (çok çok yeni demek istiyorum; 10 saat içinde sanırım). Bu yüzden merak ediyorum: . ArrayList olan Tournament nesnesinin özellikleri göz önüne alındığında Parcelable nesnesi oluşturmak mümkün mü? . Tüm turnuva verilerini Parcelable nesnesine nasıl depolarız ve bunlara diğer etkinliklerden nasıl erişirim? (A ve B).

+2

çıkış nasıl için tam bir örnek vardır Bu cevap parcle Parcelable kullanarak parse arrayList. http://stackoverflow.com/questions/7400564/android-parcelable-retailerorderactivity-java-return-null/7400675#7400675 –

+0

@LalitPoptani: Oyuncu nesnesinin de Parcelable olması gerekiyor mu? –

+0

evet bunu yapmak için daha iyi. –

cevap

0

bu bir çok şey RPC en haline gelmek - Geleneksel Java çalışmalarının büyük bölümünü yazardı sonra emin yeterli ......

yep, yapmaya:

Bir IBinder aracılığıyla gönderilebilen bir mesaj (veri ve nesne referansları) için kapsayıcı. Bir Parsel, IPC'nin diğer tarafında (belirli türleri yazmak için çeşitli yöntemleri kullanarak veya genel Parcelable arayüzü kullanılarak) düzleştirilmemiş olan düzleştirilmiş verileri ve diğer tarafın alınmasıyla sonuçlanacak canlı IBinder nesnelerine referanslar içerebilir. Parsel'deki orijinal IBinder ile bağlantılı bir proxy IBinder. Parsel arası iletişim şeklidir yani

....

bu 10.000 istekleri ikinci sunucu olmadığı için baz modeli yeniden düşünmek zorunda - ne bir eldir o varsa sadece süreç masadan işaretçileri indirebiliriz tesviye tüketici cihazı için o

faaliyet nerede ben girişi delmek için çok dikkatli olmak http://android-developers.blogspot.com/?hl=en

adresindeki blog sekmesine gidin öğrendim çünkü çalışan iş parçacığında olması gereken şeylerin derinliklerine ve Performans

için

Multithreading kullanımı Java kolaylaştırır zengin senkronizasyon ilkeller te

11:41 AM Temmuz 2010 19 Tim Bray Gönderen [Bu mesaj Gilles Debunne, bir mühendis tarafından çok gruplu olmayı seven Android grubunda.- Tim Bray]

bu bloglarda var

--- çok daha iyi bir yer başlatmak için burayı

2

göstermek kodudur nasıl bir 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]; 
      } 
    }; }