سؤال

أحاول كتابة مجموعة من الكائنات التي تنفذ لا تتردد الى قطعة استخدام writearcelableablearray..

يتم تعريف الكائنات التي أحاول الكتابة (كما تتوقع) على النحو التالي:

public class Arrival implements Parcelable {
    /* All the right stuff in here... this class compiles and acts fine. */
}

وأنا أحاول أن أكتبها في "الطرود" مع:

@Override
public void writeToParcel(Parcel dest, int flags) {
    Arrival[] a;
    /* some stuff to populate "a" */
    dest.writeParcelableArray(a, 0);
}

عندما يحاول Eclipse ترجمة هذا، أحصل على الخطأ:

عدم تطابق المرتبط: الطريقة العامة WriteParcelableableAlerray (T []، Int) لا تتأثر الطرود النوعية في الحجج (الوصول []، int). لا يتمتع وصول النوع الذي يستنتج بديلا ساري المفعول بالمعلمة المحددة <t reimable>

أنا لا أفهم تماما رسالة الخطأ هذه. Parcelable هي واجهة (وليس فئة) حتى لا تستطيع تمديدها. هل لدي احد اى افكار؟

تحديث: أواجه أساسا نفس المشكلة عند وضع ArrayList من ParcelableS في Intent:

Intent i = new Intent();
i.putParcelableArrayListExtra("locations", (ArrayList<Location>) locations);

عائدات:

الطريقة putparcelableablearrayListExtra (سلسلة، arraylist <؟ لا يتقدم

قد يكون هذا بسبب Location هل كان الفصل الذي كنت أعمل عليه أعلاه (يلف Arrivalق)، لكنني لا أعتقد ذلك.

هل كانت مفيدة؟

المحلول 2

اتضح أنه أراد فقط أن نبني مجموعة من الطراديا. لاستخدام المثال من السؤال:

@Override
public void writeToParcel(Parcel dest, int flags) {
    Parcelable[] a;
    /* 
        some stuff to populate "a" with Arrival 
        objects (which implements Parcelable) 
    */
    dest.writeParcelableArray(a, 0);
}

نصائح أخرى

في الواقع، يمكنك تمديد واجهة، ويبدو أنك بحاجة إلى القيام بذلك. تسأل المعلمة الأجهزة في WritearcelableableArray واجهة موسعة (وليس الواجهة نفسها). حاول إنشاء واجهة MyPharcelable يمتد. ثم أعلن صفيفك باستخدام الواجهة، ولكن ينبغي أن يكون وصولك وصولك mypharcelable.

أعرف أن المشكلة قد تم حل المشكلة، لكن الحل الخاص بي كان آخر، لذلك أنا نشره هنا: في حالتك الكسوف تلقائيا حزمة خاطئة بسبب فصول أسماء الفصول المهمة (بعض Dom.Camment بدلا من صفي تعليقي).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top