Android NumberPicker - Negative Zahlen

9

Kennt jemand eine einfache Möglichkeit, negative Zahlen mit dem Standard-Nummernpicker von Android zuzulassen? Ich verstehe, dass es der InputFilter ist, der dies verbietet, aber gibt es einen einfachen Weg, um zu überschreiben, ohne das gesamte Widget neu zu schreiben?

Jede Hilfe würde sehr geschätzt werden.

    
Josh 16.01.2013, 11:37
quelle

4 Antworten

13

Eine allgemeinere und elegantere Lösung besteht darin, NumberPicker.Formatter zu verwenden und nur zu verwenden positive Zahlen im NumberPicker.

Beispiel, wenn ich eine Nummer in [-50, 50] auswählen möchte:

%Vor%

dann, um den ausgewählten Wert zurück zu bekommen:

%Vor%     
alberthier 17.07.2013 12:17
quelle
5

Verwenden:

%Vor% oder %Vor%

Mit beiden können Sie beliebige Strings für Ihren NumberPicker verwenden. Was Sie tun, ist, dass Sie eine Reihe von Strings angeben, die Sie an den NumberPicker übergeben. Dann werden Ihre Werte anstelle der Standardwerte angezeigt.

    
user1762507 24.02.2013 16:04
quelle
1

Die Verwendung von .setFormatter() erlaubt keine Eingabe negativer Zahlen. Mit .setDisplayedValues() wird die Tastatur textuell statt numerisch angezeigt. Also hier ist die Klasse SignedNumberPicker :

%Vor%

Verwenden Sie es wie "normale" NumberPicker, aber fühlen Sie sich frei, negative Zahlen zu verwenden. Anstelle von getValue() verwenden Sie getRealValue() , beacus getValue() wird intern von NumberPicker (!?) Verwendet. Ich habe auch setOnTextFocusChangedListener() method hinzugefügt, was für die Deaktivierung der OK-Schaltfläche usw. nützlich sein könnte.

Aktualisierung: Wenn Sie verhindern möchten, dass der Benutzer den gleichen Wert eingibt, können Sie die Schaltfläche OK deaktivieren, solange die Tastatur angezeigt wird, und den Wert ändern:

%Vor%     
user4215456 26.03.2018 19:25
quelle
-1

Hier ist das Beispiel, nach dem Sie suchen.

%Vor%     
Ram kiran 16.01.2013 11:44
quelle

Tags und Links