数字选择器中的跨区文本
Posted
技术标签:
【中文标题】数字选择器中的跨区文本【英文标题】:Spanned text in Number picker 【发布时间】:2019-04-27 06:13:43 【问题描述】:我在 android 中显示仪表 m2 时遇到问题。我可以在 TextView 中为 setText 使用 SpannedBuilderString 并且它可以工作。
问题是我想在 Number Picker 中显示 m2 像 50 m2 100 m2但数字选择器只显示字符串,我不能。请帮我解决这个问题。谢谢大家。
【问题讨论】:
sr 延迟回复,就像我在问题中所说的那样。我可以通过SpannableStringBuilder
和 superscriptSpan
为 textView 设置带有 m2 的文本。因为 setText 接收 Spanned 所以我的代码工作。但我在数字选择器中看不到它。无论如何,我使用 Tamir Abutbul 的 unicode 找到了解决方案
【参考方案1】:
使用 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);
【讨论】:
【参考方案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);
【讨论】:
以上是关于数字选择器中的跨区文本的主要内容,如果未能解决你的问题,请参考以下文章