在android中跨越特定单词

在android中跨越特定单词,android,Android,在我的android项目中,我想在字符串中显示一个特殊的单词,比如说试用,这是为了我的试用。这个试用只是为了好玩。 如何在android中实现这一点 我尝试使用下面的代码,它将只格式化15到30之间的字符串 Hello All 请让我知道,如果我可以在android上做这件事 请提出你的宝贵建议 提前感谢:)尝试在String类中使用indexOf(String str)方法。这将使您第一次在Spanable(扩展字符串)中找到要搜索的单词。然后,您可以相应地应用颜色范围。在Scythe的答案

在我的android项目中,我想在字符串中显示一个特殊的单词,比如说试用,这是为了我的试用。这个试用只是为了好玩。 如何在android中实现这一点

我尝试使用下面的代码,它将只格式化15到30之间的字符串

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;
    }
}