Java 如何在TextView中反复更改单击单词的颜色-Android Studio?
我有以下代码:Java 如何在TextView中反复更改单击单词的颜色-Android Studio?,java,android-studio,textview,clickable,Java,Android Studio,Textview,Clickable,我有以下代码: public class MainActivity extends AppCompatActivity { @SuppressLint("ClickableViewAccessibility") @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.ac
public class MainActivity extends AppCompatActivity {
@SuppressLint("ClickableViewAccessibility")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final TextView tv = findViewById(R.id.tv);
tv.setOnTouchListener(new View.OnTouchListener() {
@SuppressLint("ResourceAsColor")
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) {
Integer mOffset = tv.getOffsetForPosition(motionEvent.getX(), motionEvent.getY());
Toast.makeText(MainActivity.this, findWordForRightHanded(tv.getText().toString(), mOffset), Toast.LENGTH_SHORT).show();
}
return false;
}
});
}
private String findWordForRightHanded(String str, int offset) {
if (str.length() == offset) {
offset--;
}
if (str.charAt(offset) == ' ') {
offset--;
}
int startIndex = offset;
int endIndex = offset;
try {
while (str.charAt(startIndex) != ' ' && str.charAt(startIndex) != '\n') {
startIndex--;
}
} catch (StringIndexOutOfBoundsException e) {
startIndex = 0;
}
try {
while (str.charAt(endIndex) != ' ' && str.charAt(endIndex) != '\n') {
endIndex++;
}
} catch (StringIndexOutOfBoundsException e) {
endIndex = str.length();
}
char last = str.charAt(endIndex - 1);
if (last == ',' || last == '.' ||
last == '!' || last == '?' ||
last == ':' || last == ';') {
endIndex--;
}
return str.substring(startIndex, endIndex);
}
}
发件人:
现在,我想用命令替换Toast消息,将单击的单词的颜色更改为蓝色,但我不知道如何更改。你能帮助我吗。谢谢你的帮助