2011-11-19 20 views
7

के साथ एंड्रॉइड पार्सलेबल कार्यान्वयन इसलिए मैं एक टेस्ट ऐप लागू कर रहा हूं जिसमें मैं टूर्नामेंट ऑब्जेक्ट पार्ससेल के रूप में तैयार करूंगा और उन्हें इरादों के बीच पारित कर दूंगा। एक टूर्नामेंट में शामिल हैं: । टूर्नामेंट का नाम । नियम । मिलान करने वाले खिलाड़ियों के लिए नियम (यादृच्छिक/मैनुअल) ।ArrayList

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

}

: खिलाड़ियों

की एक सरणी सूची यह वही है मैं अब तक किया है मैं एक एम एंड्रॉइड के लिए नया (मेरा मतलब बहुत नया है; मुझे लगता है कि इसमें 10 घंटे)। तो मैं सोच रहा हूं: । क्या टूर्नामेंट ऑब्जेक्ट की चश्मा दिए गए पार्सेलबल ऑब्जेक्ट को बनाना संभव है जिसमें ArrayList है? । सभी टूर्नामेंट डेटा को एक पार्ससेल योग्य ऑब्जेक्ट में कैसे स्टोर करें और उन्हें अन्य गतिविधि से कैसे एक्सेस करें? (अर्थात् ए और बी)।

+2

चेकआउट इस उत्तर जिसके लिए कैसे करने के लिए पूर्ण उदाहरण है parcle पार्सल का उपयोग कर पार्स सरणी सूची। http://stackoverflow.com/questions/7400564/android-parcelable-retailerorderactivity-java-return-null/7400675#7400675 –

+0

@LalitPoptani: तो क्या खिलाड़ी ऑब्जेक्ट को पार्सलबल भी होना चाहिए? –

+0

हाँ ऐसा करने के लिए बेहतर है। –

उत्तर

0

इन बातों का एक बहुत बाहर बारी आरपीसी के होने के लिए - मैं पारंपरिक जावा में काम का बड़ा हिस्सा लिखते थे तो ......

हां, यकीन है कि पर्याप्त बनाने की कोशिश:

एक संदेश (डेटा और ऑब्जेक्ट संदर्भ) के लिए कंटेनर जिसे एक आईबिंडर के माध्यम से भेजा जा सकता है। एक पार्सल में दोनों फ़्लैट किए गए डेटा हो सकते हैं जो आईपीसी के दूसरी तरफ (विशिष्ट प्रकारों को लिखने के लिए यहां विभिन्न विधियों का उपयोग करके, या सामान्य पार्सलबल इंटरफ़ेस) का उपयोग करते हुए, और लाइव आईबींडर ऑब्जेक्ट्स के संदर्भों के साथ असफल हो जाएंगे, जिसके परिणामस्वरूप दूसरी तरफ प्राप्त होगा एक प्रॉक्सी आईबींडर पार्सल में मूल आईबींडर से जुड़ा हुआ है।

दूसरे शब्दों में पार्सल interprocess संचार का एक रूप है ....

आप फिर से सोचने के लिए बेस मॉडल के रूप में इस एक 10,000 अनुरोधों एक दूसरे सर्वर नहीं है - यह क्या है एक हाथ है -held उपभोक्ता उपकरण है, जो सिर्फ अगर यह प्रक्रिया टेबल पर से संकेत खींच सकते हैं करने के लिए की वजह से जहां यह

संचालित मैं http://android-developers.blogspot.com/?hl=en

पर ब्लॉग टैब पर जाएँ के लिए प्रवेश की खुदाई के लिए नहीं बहुत सावधान रहना सीख लिया है उन चीजों में गहराई जो कार्यकर्ता धागे और संख्या में होना चाहिए अमीर तुल्यकालन पुरातन है कि जावा आसान बना देता है ते प्रदर्शन

लिए

बहु सूत्रण का उपयोग करने के

11:41 पूर्वाह्न पर जुलाई 2010 को 19 टिम ब्रे द्वारा पोस्ट [इस पोस्ट में गाइल्स Debunne, एक इंजीनियर के द्वारा होता है एंड्रॉइड समूह में जो मल्टीटास्क प्राप्त करना पसंद करता है।- टिम ब्रे]

यह ब्लॉग में है --- बहुत बेहतर जगह शुरू करने के लिए

2
यहाँ

कोड है कि आप को दिखाने है कि कैसे एक 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]; 
      } 
    }; }