Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 按钮文本格式不';不要使用较旧的API';s_Android_Button_Formatting_Textview - Fatal编程技术网

Android 按钮文本格式不';不要使用较旧的API';s

Android 按钮文本格式不';不要使用较旧的API';s,android,button,formatting,textview,Android,Button,Formatting,Textview,我正在尝试设置一个按钮,其文本如下所示: 34.99美元24.99美元 但是,在一些较旧的设备上,格式根本不显示。我试过Html.fromHtml,也试过自己构建SpannableString,但都不管用 无论出于何种原因,将按钮更改为文本视图似乎可以奏效 编辑:使用按钮效果很好,但是对于26之前的API,您需要将textAllCaps设置为false。感谢@Mike M.的解释 下面的代码现在可以工作了: SpannableString spannableString = new Spanna

我正在尝试设置一个按钮,其文本如下所示:

34.99美元24.99美元


但是,在一些较旧的设备上,格式根本不显示。我试过
Html.fromHtml
,也试过自己构建
SpannableString
,但都不管用

无论出于何种原因,将
按钮更改为
文本视图似乎可以奏效

编辑:使用
按钮
效果很好,但是对于26之前的API,您需要将
textAllCaps
设置为
false
。感谢@Mike M.的解释

下面的代码现在可以工作了:

SpannableString spannableString = new SpannableString(oldBuyPrice + newBuyPrice);
spannableString.setSpan(new StyleSpan(Typeface.ITALIC), 0, oldBuyPrice.length(), 0);
spannableString.setSpan(new StrikethroughSpan(), 0, oldBuyPrice.length(), 0);
buyButtonTextView.setText(spannableString);

按钮的默认样式将
textAllCaps
设置为
true
。在Oreo之前,涉及的转换将文本视为普通的
字符串
,因此最终会丢失已应用的任何跨度格式。如果要将
按钮的
样式设置为
textAllCaps
false
,它应该可以解决您的问题,而无需切换到
TextView
。您说得对!我只是试着把它们改回按钮,结果成功了。谢谢你的解释!