我的 strings.xml 文件中有一个字符串。单击该字符串的某些部分会重定向到任务。该部分是根据字符串的索引制作的。
现在我正在尝试将其翻译为法语,但我遇到了索引越界异常,因为它的长度小于英语字符串的长度。
谁能说一下,处理这种情况的最佳方法是什么?
字符串分离是我们可以做的一件事。
但我想在一个文本视图本身中处理它。
英文字符串的代码:
SpannableString spannableString = new SpannableString(getResources().getString(R.string.desc));
ClickableSpan clickableSpan = new ClickableSpan() {
@Override
public void onClick(View textView) {
Log.v("dosomething", "dosomething");
}
@Override
public void updateDrawState(TextPaint ds) {
Log.v("task one", "task one");
}
};
spannableString.setSpan(clickableSpan, 87, spannableString.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
mDesc.setText(spannableString);
mDesc.setMovementMethod(LinkMovementMethod.getInstance());
然后,您必须检测设备正在使用的语言,无论它使用法语字符串还是英语字符串,然后将其放入定义给定字符串文件长度的每个条件中。
例如
if (Locale.getDefault().getLanguage().equals("en")) {
spannableString.setSpan(clickableSpan, 87, spannableString.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
}
else if (Locale.getDefault().getLanguage().equals("fr")) {
spannableString.setSpan(clickableSpan, 50, spannableString.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
}
只需根据字符串文件中的字符串更改开始和结束长度。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)