【问题标题】:Spanned text in Number picker数字选择器中的跨区文本
【发布时间】:2019-04-27 06:13:43
【问题描述】:

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

问题是我想在 Number Picker 中显示 m2 像 50 m2 100 m2但数字选择器只显示字符串,我不能。请帮我解决这个问题。谢谢大家。

【问题讨论】:

  • sr 延迟回复,就像我在问题中所说的那样。我可以通过 SpannableStringBuildersuperscriptSpan 为 textView 设置带有 m2 的文本。因为 setText 接收 Spanned 所以我的代码工作。但我在数字选择器中看不到它。无论如何,我使用 Tamir Abutbul 的 unicode 找到了解决方案

标签: android kotlin numberpicker spanned


【解决方案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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-11
      • 1970-01-01
      • 2016-02-12
      • 2022-07-20
      • 1970-01-01
      • 2015-06-03
      相关资源
      最近更新 更多