Wie initialisiert man ein statisches SparseArray?

7

Wie kann ich eine static , nicht änderbare Instanz von android.util.SparseArray ? <> initialisieren? / p>     

firyice 05.05.2013, 23:00
quelle

3 Antworten

6

Du kannst nicht tun, was du versuchst. Zumindest nicht, wie Sie es versuchen. Es gibt keine Implementierung von SparseArray , die nicht geändert werden kann.

Sie könnten jedoch einen erstellen. Hier ist wie:

  • Erstellen Sie eine Klasse, sagen Sie CustomSparseArray<E> , und erweitern Sie SparseArray .
  • Überschreiben Sie alle Methoden , die die Elemente im Array ändern, und ersetzen Sie sie durch Folgendes:

    %Vor%
  • Fügen Sie dann eine Membervariable zur Klasse boolean mLocked = false; .
  • hinzu
  • Als nächstes benötigen Sie eine Methode wie die folgende:

    %Vor%
  • Schließlich implementieren Sie Ihre statische Variable mit einer ähnlichen Methode wie in dem anderen Beitrag :

    %Vor%

Dann haben Sie ein unmodifizierbares SparseArray in Ihrer static Variable myArray .

    
Eric 06.05.2013, 01:43
quelle
15

Hier ist eine bessere Möglichkeit, eine anonyme Klasse zu verwenden:

%Vor%     
Peter 19.12.2013 02:43
quelle
0

Das funktioniert für mich:

%Vor%

nach: Zypern

    
PJ_Finnegan 06.03.2017 09:23
quelle