2017-08-12 5 views
-1

Ich habe eine Nummernauswahl mit Zeichenfolgen eingerichtet, aber ich habe ein Problem mit der Zeichenfolge, die angezeigt wird.Number Picker Wert erhalten

Hier ist der Code für den Aufbau des Nummernaufnehmers.

fractionPicker ist meine Nummernauswahl.

void fractionPickerFunction(){ 
    final String[] arrayString= new String[]{"None", "1/8", "1/4", "3/8", "1/2", "5/8", "3/4", "7/8"}; 

    fractionPicker.setMinValue(0); 
    fractionPicker.setMaxValue(arrayString.length-1); 

    fractionPicker.setFormatter(new NumberPicker.Formatter() { 
     @Override 
     public String format(int value) { 

      return arrayString[value]; 
     } 
    }); 
} 
+1

Welches Problem haben Sie? – shmosel

+1

Bitte lesen Sie [mcve] für Tipps zum Erstellen eines Codebeispiels. –

+0

Ich versuche den Wert von dem, was der Picker ist, zu bekommen. Ich kann getValue() nicht verwenden, weil sie keine Ints sind. Also ich weiß nicht, welche Methoden zu verwenden, um den tatsächlichen Wert der Zeichenfolge zu erhalten –

Antwort

0

eine Änderung Hörer einstellen, wenn Sie nur das Ergebnis erhalten müssen. Wenn Sie die Variable mit setFormatter noch modifizieren müssen, verwenden Sie einfach beide. Rufen Sie Ihren setFormatter auf und fügen Sie dann den Änderungslistener hinzu. Es wird dann zu Ihnen zurückkehren, Ihre modifizierte Variable.

ändern

void fractionPickerFunction(){ 
    final String[] arrayString= new String[]{"None", "1/8", "1/4", "3/8", "1/2", "5/8", "3/4", "7/8"}; 

fractionPicker.setMinValue(0); 
fractionPicker.setMaxValue(arrayString.length-1); 

fractionPicker.setFormatter(new NumberPicker.Formatter() { 
    @Override 
    public String format(int value) { 

     return arrayString[value]; 
    } 
}); 

}

Um dies:

fractionPicker.setOnValueChangedListener(new OnValueChangeListener() { 

     @Override 
     public void onValueChange(NumberPicker picker, int oldVal, int newVal) { 
      // TODO Auto-generated method stub 

      String Old = "Old Value : "; 
      String New = "New Value : "; 

     } 
    }); 
0

Sie zum android documentation auf dem Number beziehen. Kurz gesagt, werden Sie eine OnValueChangeListener von setOnValueChangedListener auf Ihrem NumberPicker setzen möchten. Sie können das mit dem folgenden tun:

fractionPicker.setOnValueChangedListener(new OnValueChangeListener() { 

    @Override 
    public void onValueChange(NumberPicker picker, int oldVal, int newVal) { 
     // Do your work here 

     // Parameters 
     // picker NumberPicker: The NumberPicker associated with this listener. 
     // oldVal int: The previous value. 
     // newVal int: The new value. 
    } 
});