在android中跨越特定单词
在我的android项目中,我想在字符串中显示一个特殊的单词,比如说试用,这是为了我的试用。这个试用只是为了好玩。 如何在android中实现这一点 我尝试使用下面的代码,它将只格式化15到30之间的字符串在android中跨越特定单词,android,Android,在我的android项目中,我想在字符串中显示一个特殊的单词,比如说试用,这是为了我的试用。这个试用只是为了好玩。 如何在android中实现这一点 我尝试使用下面的代码,它将只格式化15到30之间的字符串 Hello All 请让我知道,如果我可以在android上做这件事 请提出你的宝贵建议 提前感谢:)尝试在String类中使用indexOf(String str)方法。这将使您第一次在Spanable(扩展字符串)中找到要搜索的单词。然后,您可以相应地应用颜色范围。在Scythe的答案
Hello All
请让我知道,如果我可以在android上做这件事
请提出你的宝贵建议
提前感谢:)尝试在String类中使用indexOf(String str)方法。这将使您第一次在Spanable(扩展字符串)中找到要搜索的单词。然后,您可以相应地应用颜色范围。在Scythe的答案上展开一点,将它们全部替换为:
TextView TV = (TextView)findViewById(R.id.mytextview01);
Spannable WordtoSpan = new SpannableString("I know just how to whisper, And I know just how to cry,I know just where to find the answers");
WordtoSpan.setSpan(new ForegroundColorSpan(Color.BLUE), 15, 30,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
TV.setText(WordtoSpan);
公共类垃圾扩展活动{
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView tv=(TextView)findViewById(R.id.textView1);
String tvText=“这是我的试用版。这个试用版只是为了好玩。只是一个试用版”;
tvText+=“一次试验。只是一次试验。这是一次试验”;
字符串lookFor=“试用”;
setText(formatString(tvText,lookFor));
}
私有可扩展格式字符串(字符串targetStr、字符串lookFor){
Spannable spanString=null;
spanString=新的SpannableString(targetStr);
int fromIndex、startSpan、endSpan;
fromIndex=0;
while(fromIndex<(targetStr.length()-1)){
startSpan=targetStr.indexOf(lookFor,fromIndex);
如果(startSpan==-1)
打破
endSpan=startSpan+lookfort.length();
spanString.setSpan(新的前地面颜色span(颜色.蓝色)),startSpan,
endSpan,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
fromIndex=端跨;
}
返回字符串;
}
}
.我不明白你想做什么,我想给用户一个便利,比如如果有一个很长的文本,他需要在其中找到一些文本,特定的搜索文本应该是红色的,其余的是黑色:)在这种情况下,如果你循环到
targetStr.length()-1
你就排除了最后一个字符。
public class Junk extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView tv = (TextView) findViewById(R.id.textView1);
String tvText = "This is for my Trial.This Trial is just for fun. Just a Trial";
tvText+="A Trial. Only a Trial. It's a Trial";
String lookFor = "Trial";
tv.setText(formatString(tvText, lookFor));
}
private Spannable formatString(String targetStr, String lookFor) {
Spannable spanString = null;
spanString = new SpannableString(targetStr);
int fromIndex, startSpan, endSpan;
fromIndex = 0;
while (fromIndex < (targetStr.length() - 1)) {
startSpan = targetStr.indexOf(lookFor, fromIndex);
if (startSpan == -1)
break;
endSpan = startSpan + lookFor.length();
spanString.setSpan(new ForegroundColorSpan(Color.BLUE), startSpan,
endSpan, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
fromIndex = endSpan;
}
return spanString;
}
}