strings.xmlファイルに文字列があります。この文字列の一部をクリックすると、タスクにリダイレクトされます。その部分は文字列のインデックスに基づいて作られています。ローカライズされた文字列を処理すると、単一のTextViewにリンクが含まれます
私はそれをフランス語に翻訳しようとしていますが、英語の文字列の長さがそれ以下であるため、インデックスの境界外の例外が発生しています。
誰でもこのシナリオを処理するにはどうすればよいでしょうか。
文字列の分離は私たちができることのひとつです。
しかし、私はそれを1つのテキストビューで処理したいと考えています。英語の文字列のための
コード:あなたは、デバイスは、それがその後、フランスの文字列や英語の文字列を使用するかどうかを使用している言語を検出する必要がありますが、長さを定義し、各条件でこれを入れ
その後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());
文字列の区切りが必要ですが、 'setSpan()'メソッドでは 'int start'を見つける必要があります。 –