Just to make it simple, here I post my methode
.
.
.
.
.
.
.
.
First getting ready to use the methode
    ArrayList<String> searchWords = new ArrayList<String>(Arrays.asList("Second", "Scottish", "forces", "England"));
    String text = "1333 – Second War of Scottish Independence: The Scottish-held town of Berwick-upon-Tweed surrendered to English forces, ending a siege led by Edward III of England (depicted).";
    TextView sampleTextView = new TextView(currentContext); // currentContext = getContext();
    if (searchWords != null) {
        Spannable newText = setSpanHighlight(text, searchWords);
        sampleTextView.setText(newText, TextView.BufferType.SPANNABLE);
    }
    else{
        sampleTextView.setText(text);
    }
The methode
    private Spannable setSpanHighlight(String text, @NonNull ArrayList<String> searchWord) {
    Spannable newText = new SpannableString(text);
    if (searchWord.size() != 0) {
        for (String word : searchWord){
            if (text.contains(word)){
                int beginIndex = text.indexOf(String.valueOf(word)); //Unnecessary 'String.valueOf()' call => if you have something else than String
                int endIndex = beginIndex + word.length();
                newText.setSpan(
                        new ForegroundColorSpan(Color.BLUE),
                        beginIndex,
                        endIndex,
                        Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
            }
        }
    }
    return newText;
}