0

Mariotti の CardsLib を使用して、Cards を含むリストを作成しています。以下に示すように、(for ループで) カードを作成します。

CustomCard aCard = new CustomCard(getActivity().getApplicationContext());
CardHeader aHeader = new CardHeader(getActivity().getApplicationContext());
aHeader.setTitle(item.getHeaderText());

aCard.addCardHeader(aHeader);
aCard.setSpannableMainTitle(true);
aCard.setmSsbTitle(CustomSpannableBuilderForHome.getSpannedText(item));

CardThumbnail thumbnail = new CardThumbnail(getActivity().getApplicationContext());
thumbnail.setDrawableResource(R.drawable.ic_launcher);
aCard.addCardThumbnail(thumbnail);
cards.add(0, aCard);

CustomCard は Card クラスを拡張したクラスです。このクラスを作成したのは、単純な String の代わりに SpannableStringBuilder インスタンスを割り当てる必要があるためです。これはカスタムカードです:

public class CustomCard extends Card {

    protected boolean isSpannableMainTitle;

    /**
     * Main Title
     */
    protected SpannableStringBuilder mSsbTitle;

    public SpannableStringBuilder getmSsbTitle() {
        return mSsbTitle;
    }

    public void setmSsbTitle(SpannableStringBuilder mSsbTitle) {
        this.mSsbTitle = mSsbTitle;
    }

    public boolean isSpannableMainTitle() {
        return isSpannableMainTitle;
    }

    public void setSpannableMainTitle(boolean isSpannableMainTitle) {
        this.isSpannableMainTitle = isSpannableMainTitle;
    }

    public CustomCard(Context context) {
        super(context);
    }

    @Override
    public void setupInnerViewElements(ViewGroup parent, View view) {
        //Add simple title to header
        if (view != null) {
            TextView mTitleView = (TextView) view.findViewById(R.id.card_main_inner_simple_title);
            if (mTitleView != null)
            {
                mTitleView.setText(isSpannableMainTitle? mSsbTitle : mTitle);
                if (isSpannableMainTitle) mTitleView.setMovementMethod(LinkMovementMethod.getInstance());
            }
        }
    }
}

Maps API V2 を使用する前は、すべて正常に機能していました。現在、テキストにスパンが含まれていない場合、カードのタイトルは表示されません。スパンがある場合は、スパンのみが表示されます。また、設定するタイトルは常に SpannableStringBuilder のインスタンスであることにも注意してください。例えば:

Text1 = これはスパンのないテキストです

Text2 = This is a (text) with (spans) <--- () は、スパンの存在を示します。

これは出力です:

カード 1:

画像 + ヘッダー + テキストなし

カード 2:

画像 + ヘッダー + (テキスト) (スパン)

つまり、最初のカードにはテキストがありませんが、後者にはスパンされたテキストのみが表示されます (つまり、これは with であり、それらはすべて無視されます)。

前述のとおり、Maps API V2 を組み込むと、この動作が始まりました。助けてください!

4

0 に答える 0