2017-08-12 30 views
-1

我有一个号码选取器设置与字符串,但我有问题获取正在显示的字符串。号码选取器获取值

这里是编号选择器的代码。

fractionPicker是我的数字选择器。

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

你有什么问题? – shmosel

+1

请阅读[mcve]了解如何创建代码示例的提示。 –

+0

我正试图获得选择器的价值。我不能使用getValue(),因为它们不是整数。所以我不知道要使用什么方法来获取字符串的实际值 –

回答

0

如果您只需要获取结果,请设置更改侦听器。如果你需要用setFormatter修改变量,那么就使用两者。调用你的setFormatter,然后添加更改侦听器。它会返回给你,你的修改变量。

变化

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]; 
    } 
}); 

}

要这样:

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

您应该参考android documentation上NumberPicker。总之, 您需要在NumberPicker上拨打setOnValueChangedListener来设置OnValueChangeListener。你可以这样做:

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. 
    } 
});