Это мой первый раз с Java и Android Studio, так что извините, если это глупый вопрос, я действительно устал пытаться понять это.Я хочу сделать пользовательский ввод кликабельным по каждому слову (я пытаюсь дать изображение, которое описывает каждое слово пользовательского ввода после того, как он щелкнет по нему).
Я считаю, что setSpan работает для одного слова ввремя (хотя я не уверен), но когда фраза содержит более одного слова, приложение вылетает (например, "java.lang.IndexOutOfBoundsException: setSpan (6 ... 7) заканчивается за пределами длины 1")
public void processResult(String result_message) {
result_message = result_message.toLowerCase();
final TextView changingText = (TextView) findViewById(R.id.TextToChange);
changingText.setText(result_message);
final String s = result_message;
String[] arr = s.split(" ");
for (int i = 0; i < arr.length; i++) {
final String ss = arr[i];
Log.d("S", ss);
int startingPosition = s.indexOf(ss);
int endingPosition = startingPosition + ss.length();
Spannable str = new SpannableString(ss);
Log.d("points", "start position=" + startingPosition + " end position=" + endingPosition);
ClickableSpan clickableSpan = new ClickableSpan() {
@Override
public void onClick(View widget) {
Toast.makeText(MainActivity.this, ss, Toast.LENGTH_SHORT).show();
}
};
str.setSpan(clickableSpan, startingPosition, endingPosition, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
changingText.setText(ss);
changingText.setMovementMethod(LinkMovementMethod.getInstance());
}
}
Цель состоит в том, чтобы все слова result_message были кликабельными, но я верю, что только одно из них (и я даже не уверен в этом)