2016-06-12 8 views
-1

Nehmen wir an, dass ich diese kleine Klasse haben:Parcel Klasse mit einer Schnittstelle Membervariable

public Class A { 
    private int mA = 0; 
    private MyInterface mInterface = null; 

    public interface MyInterface { 
     public void test(); 
    } 

    public void setA(int a) { mA = a; } 
    public void setInterface(MyInterface i) { mInterface = i; } 
} 

OK. Nun, wie kann ich es Parcelable machen? Hinzufügen mA zu einem Parcel ist einfach, aber wie kann ich Parcel-Schnittstelle mInterface? Ich habe keine Beispiele zum Hinzufügen von Schnittstelle zu einem Parcel gefunden.

Grüße

UPDATE: Ich soll sagen, dass ich in der Lage gewesen, dies als Seializable Klasse zu tun. Aber ich mag es zu wissen, wie dies in Parcelable getan werden kann.

Beispiele für Serializable sind hier zu finden: Android: How to send interface from one activity to another

+0

, weil Sie das nicht tun können, können Sie nur Dinge hinzufügen, dass 'Parcelable' Klasse – pskink

+0

@pskink unterstützt ich nichts über gesehen, was' Parcelable' Klasse unterstützt. Außerdem denke ich nicht, was ich tun muss, ist zu abnormal. Ein einfaches Beispiel ist die Übergabe eines Arrays dieser Klasse an ein 'Fragment' mit verschiedenen Callback-Methoden für jedes Array-Mitglied (Verschiedene Callback-Routinen). – Afshin

+0

also warum brauchst du überhaupt "Parcelable"? – pskink

Antwort

0

erweitern Sie Ihre Schnittstelle von Parcel Schnittstelle. Z. B:

public interface MyInterface extends Parcelable 
+0

Und dann, wie muss ich meine 'WritetoParcel()' und 'MyInterface (Parcel in)' zu speichern und diese Member-Schnittstelle wiederherstellen? – Afshin

+0

Korrekt, auch wenn Sie nur Ihre eigene Schnittstelle implementieren. – Neo

Verwandte Themen