You can use TextView.setTextColor(ColorStateList) to achieve this.
To create a ColorStateList, just initialize with the different "cases" for the combinations of state flags that you are interested in. For example:
ColorStateList colors = new ColorStateList(
new int[][] {
new int [] { android.R.attr.state_pressed },
new int [] { android.R.attr.state_selected },
new int[0],
},
new int[] {
highlightedColor,
highlightedColor,
color,
});
tv.setTextColor(colors);
This would use "color" for the normal state, and "highlightedColor" when the TextView is pressed or selected. For a list of the possible states, see R.attr. You are probably interested in state_checked but I haven't tested that case.