Spanned text in Number picker

855 views Asked by At

I have a problem with to show meter m2 in android. I can use SpannedBuilderString for setText in TextView and it work.

The problem is I want to show m2 in Number Picker like 50 m2 100 m2 but Number Picker only show String and I can't. Please help me fix that. Tks everyone.

2

There are 2 answers

0
Tamir Abutbul On BEST ANSWER

Using Unicode Character makes it very easy :

First create an array with your values(this will go to the number picker)

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

Now use this method to create number picker with custom values:

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

And for the final step call this method:

  setNubmerPicker(yourNumberPicker,mValues);
0
forpas On

Apply this custom Formatter to your NumberPicker:

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

numberPicker.setFormatter(formatter);