Android Charsequence-替换文本
由于在字符串资源中使用HTML,我无法将其从charsequence转换为字符串(否则我将丢失格式)Android Charsequence-替换文本,android,html,charsequence,Android,Html,Charsequence,由于在字符串资源中使用HTML,我无法将其从charsequence转换为字符串(否则我将丢失格式) xy/string> 使用getString()后,我想用“其他东西”替换“y”,但您是如何做到的?这似乎是一个简单的问题,但出于某种原因,我找不到关于它的任何东西 编辑:现在我考虑一下,我可以将charsequence转换为包含HTML代码的字符串,然后再将其转换回charsequence吗 编辑:忘记提到字符串被设置为按钮标题,然后被检索(然后在那里使用)。有。创建一个函数,在该函数中,作
xy/string>
使用getString()
后,我想用“其他东西”替换“y”,但您是如何做到的?这似乎是一个简单的问题,但出于某种原因,我找不到关于它的任何东西
编辑:现在我考虑一下,我可以将charsequence转换为包含HTML代码的字符串,然后再将其转换回charsequence吗
编辑:忘记提到字符串被设置为按钮标题,然后被检索(然后在那里使用)。有。创建一个函数,在该函数中,作为参数,获取需要格式化的字符串。在函数中,您只需通过Iterator,然后是Html.fromHtml()。创建一个函数,在该函数中,作为参数,获取需要格式化的字符串。在函数中,您只需通过Iterator,然后使用Html.fromHtml()将问题分解为多个步骤:
- 用“其他东西”替换y可以这样做:
String.format("%1$", "otherStuff");
<string name="string_name">%1$ : %2$</string> --- getString(R.string.string_name, new String[]{"hello", "world"});
- 如果使用getString(),则可以执行以下操作:
<string name="exponent_key">%1$</string> --- String string = getString(R.string.exponent_key, "otherStuff");
- 注意:如果需要在文本视图中显示HTML,只需使用HTML.fromHtml:
textView.setText(Html.fromHtml(getString(R.string.exponent_key, "otherStuff")));
- 用“其他东西”替换y可以这样做:
String.format("%1$", "otherStuff");
<string name="string_name">%1$ : %2$</string> --- getString(R.string.string_name, new String[]{"hello", "world"});
- 如果使用getString(),则可以执行以下操作:
<string name="exponent_key">%1$</string> --- String string = getString(R.string.exponent_key, "otherStuff");
- 注意:如果需要在文本视图中显示HTML,只需使用HTML.fromHtml:
textView.setText(Html.fromHtml(getString(R.string.exponent_key, "otherStuff")));
- 在您的string.xml中
<string name="exponent_key">x<sup><small>%1$d</small></sup></string>
在string.xml中
<string name="exponent_key">x<sup><small>%1$d</small></sup></string>
考虑一下你想要达到的效果。 你可以这样做
SpannableString ss = new SpannableString("2");
// set superscript
ss.setSpan(new SuperscriptSpan(),0,ss.length(),Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
// set font size
ss.setSpan(new AbsoluteSizeSpan(12,true),0,ss.length(),Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
tv.append(ss);
考虑一下你想要达到的效果。 你可以这样做
SpannableString ss = new SpannableString("2");
// set superscript
ss.setSpan(new SuperscriptSpan(),0,ss.length(),Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
// set font size
ss.setSpan(new AbsoluteSizeSpan(12,true),0,ss.length(),Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
tv.append(ss);
首先,xy第二,尝试在程序中使用它,将其定义为字符串,然后逐字符遍历整个字符串,当您到达“y”字符时,获取该位置,然后使用您想要的任何内容更改该位置的字符,这是一个输入错误。问题是如果我将其定义为字符串,格式就会消失。试试这个。我想那会有用的。现在有没有比搜索所有按钮(包含cdata)并在每个按钮上运行Html.fromHtml()更好的方法?编辑:事实上,等等。我的一些代码直接从按钮标题中读取字符串,以确定要执行的操作。如果我将其转换为html,检索文本将再次破坏格式?首先,xy第二,尝试在程序中使用它,将其定义为字符串,然后逐字符遍历整个字符串,当到达“y”字符时,获取位置,然后用你想要的任何东西来改变这个位置的字符,这是文章中的一个输入错误。问题是如果我将其定义为字符串,格式就会消失。试试这个。我想那会有用的。现在有没有比搜索所有按钮(包含cdata)并在每个按钮上运行Html.fromHtml()更好的方法?编辑:事实上,等等。我的一些代码直接从按钮标题中读取字符串,以确定要执行的操作。如果我将其转换为html,检索文本将再次破坏格式设置。
%2$
是什么意思?CDATA位不应该在像y]>
这样的标签中吗?你能解释一下带两个参数的format和getString的作用吗?是的,关于CDATA(在我的帖子中修复了),关于%2$etc,你是对的,我已经在帖子中添加了它,但是%1$甚至意味着什么?它是一个占位符。。因此Java知道第一个元素位于该位置。这就像呼叫:“嗨%1$”。替换(“%1$”,“主”);这并不意味着什么特别的事情。数字是递增的,因此您知道哪个元素替换为哪个占位符。好的,那么我在字符串资源中从不使用字母“y”?我使用字符串资源作为按钮标题…与%2$
有什么关系?CDATA位不应该在像y]>
这样的标签中吗?你能解释一下带两个参数的format和getString的作用吗?是的,关于CDATA(在我的帖子中修复了),关于%2$etc,你是对的,我已经在帖子中添加了它,但是%1$甚至意味着什么?它是一个占位符。。因此Java知道第一个元素位于该位置。这就像呼叫:“嗨%1$”。替换(“%1$”,“主”);这并不意味着什么特别的事情。数字是递增的,因此您知道哪个元素替换为哪个占位符。好的,那么我在字符串资源中从不使用字母“y”?我使用字符串资源作为按钮标题。。。