0

for ループを使用してSpannableStringBuild、リスト内の文字列からフォーマットを追加しようとしていますTextViewが、すべての文字列が追加されているにもかかわらず、最初の for ループで追加された文字列のみがフォーマットを保持します。関連するコードは次のとおりです。

String openingsText = "";
            SpannableStringBuilder spannableOpening = new SpannableStringBuilder(openingsText);
            ForegroundColorSpan foregroundColor = new ForegroundColorSpan(
                    ContextCompat.getColor(getContext(),R.color.clickable));
            UnderlineSpan underlineSpan = new UnderlineSpan();

            for (Songs opening: Item.getOpeningThemes()){
                String song = opening.getSong();

                if (Item.getOpeningThemes().size()>1) {
                    String openingNumber = song.substring(0,song.indexOf(":")+2);
                    String openingName = song.substring(song.indexOf(":")+2,song.indexOf("(eps")-1);
                    String openingEpisodes = song.substring(song.indexOf("(eps")-1);
                    spannableOpening.append(openingNumber);
                    SpannableString openingNameSpanned = new SpannableString(openingName);
                    openingNameSpanned.setSpan(underlineSpan,0,openingNameSpanned.length(),
                            Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
                    openingNameSpanned.setSpan(foregroundColor,0,openingNameSpanned.length(),
                            Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
                    spannableOpening.append(openingNameSpanned);
                    spannableOpening.append(openingEpisodes+ "\n");

                }else{
                    SpannableString openingNameSpanned = new SpannableString(opening.getSong());
                    openingNameSpanned.setSpan(underlineSpan,0,openingNameSpanned.length(),
                            Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
                    openingNameSpanned.setSpan(foregroundColor,0,openingNameSpanned.length(),
                            Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
                    spannableOpening.append(openingNameSpanned);
                }

            }
            openingThemesText.setText(spannableOpening);
4

1 に答える 1