Wie kann ich den Spinner erweitern, um eine neue Funktion zu implementieren?

9

Ich versuche, Spinner Android Klasse in meinem Code zu erweitern, um eine neue Funktion zu implementieren, aber aus irgendeinem Grund hat das nicht funktioniert.

Dies ist die erweiterte Klasse:

%Vor%

Und das ist die Art, wie ich diese Klasse instanziiere:

%Vor%

Dies gibt mir einen Fehler zur Laufzeit.

All dies ist, wenn R.id.sphofentries in meinem Layout als Spinner deklariert ist.

Aber jetzt, wenn ich sphofentries als CustomSpinner deklariere, erhalte ich einen Laufzeitfehler genau in dem Moment, als ich das Layout auf die Aktivität setze:

%Vor%

Ich bin mir auch ziemlich sicher, dass das Problem ist, dass ich sphofentries als CustomSpinner deklarieren muss, denn wenn ich das tue:

%Vor%

Dies geht ohne Problem durch die erste Zeile, aber gibt einen Laufzeitfehler in der zweiten, dann ist das Problem nicht eine neue CustomSpinner erstellen, sondern die sphofentries in dieser CustomSpinner (Dies mit sphofentries wie deklariert a Spinner nicht CustomSpinner ).

Vielleicht mache ich etwas falsch im Layout, das ist die Art, wie ich sphofentries als CustomSpinner deklariere:

%Vor%     
FerCa 25.12.2010, 01:31
quelle

3 Antworten

12

Schließlich gab es zwei Gründe dafür, dass dies nicht richtig funktioniert, die zwei vorherigen Antworten haben Recht:

  1. Es ist notwendig, auch den zweiten Konstruktor mit dem Parameter AttributeSet zu definieren.

    %Vor%
  2. Im Layout muss der Spinner als CustomSpinner definiert sein und muss mit dem vollständig qualifizierten Namen deklariert werden:

    %Vor%
FerCa 26.12.2010, 22:16
quelle
9

Es ist ein häufiger Fehler. Fügen Sie einfach diesen Konstruktor hinzu, der vom Layout inflater aufgerufen wird:

%Vor%     
Cristian 25.12.2010 01:37
quelle
2

Sind die Schfenfratrien ein Spinner oder ein CustomSpinner ?

Es müsste in Ihrem Layout als CustomSpinner deklariert werden, damit Sie es in Ihrem Code als CustomSpinner darstellen können.

Der umgekehrte Weg würde funktionieren. Sie könnten CustomSpinner als Spinner darstellen, da es sich um eine Unterklasse handelt.

    
mp2526 25.12.2010 17:55
quelle

Tags und Links