2

我 在 android中显示仪表m 2时遇到问题。我可以在 TextView 中为 setText 使用 SpannedBuilderString 并且它可以工作。

问题是我想在 Number Picker 中显示m 2,例如 50 m 2 100 m 2但 Number Picker 只显示 String 而我不能。请帮我解决这个问题。谢谢大家。

4

2 回答 2

2

使用 Unicode 字符非常容易:

首先使用您的值创建一个数组(这将转到数字选择器)

String mValues[] = { "100 " + "\u33A1", "200 " + "\u33A1" };

现在使用此方法创建具有自定义值的数字选择器:

 private void setNubmerPicker(NumberPicker nubmerPicker,String [] numbers ){
    nubmerPicker.setMaxValue(numbers.length-1);
    nubmerPicker.setMinValue(0);
    nubmerPicker.setWrapSelectorWheel(true);
    nubmerPicker.setDisplayedValues(numbers);
}

最后一步调用这个方法:

  setNubmerPicker(yourNumberPicker,mValues);
于 2018-11-25T12:15:09.120 回答
2

将此自定义Formatter应用于您的NumberPicker

NumberPicker.Formatter formatter = new NumberPicker.Formatter(){
    @Override
    public String format(int i) {
        return  String.valueOf(i) + " " + Character.toString((char) 0x33A1);
    }
};

numberPicker.setFormatter(formatter);
于 2018-11-25T12:52:51.810 回答