将从XML中取出的文本中的一些单词设置为粗体

时间:2015-09-28 13:51:25

标签: android xml

我试图通过增强功能显示从XML文件中的一对标签内部获取的文本。以下是开始标记,文本和结束标记:

  

<english><strong>English adjectives: a young woman</strong></br> They are always invariable in gender and number.</english>

但我没有查看增强型文字,而是查看<english></english>标签之间的上述文字,其中包含<strong>之类的内容。我该如何解决这个问题?

以下是读取XML文件的方法:

public void lireXML(String mot)
        throws XmlPullParserException, IOException
{

    final TextView monMessage = (TextView) findViewById(R.id.zone_trado_scrollable);

    XmlResourceParser monFichierXML = getResources().getXml(R.xml.text);

    monFichierXML.next();

    int eventType = monFichierXML.getEventType();

    while (eventType != XmlPullParser.END_DOCUMENT)
    {
        if( (eventType == XmlPullParser.START_TAG) && (monFichierXML.getName().equalsIgnoreCase("word"))  )
        {
            monFichierXML.next();
            if ( monFichierXML.getText().equalsIgnoreCase(mot) )
            {

                monFichierXML.nextTag(); // word fermant
                monFichierXML.nextTag(); // english ouvrant
                monFichierXML.next();    // texte anglais

                if (langueChoisie == "francais") {
                    monFichierXML.nextTag(); // english fermant
                    monFichierXML.nextTag(); // français ouvrant
                    monFichierXML.next();    // texte français
                }

                if (langueChoisie == "espanol") {
                    monFichierXML.nextTag(); // english fermant
                    monFichierXML.nextTag(); // français ouvrant
                    monFichierXML.next();    // texte français
                    monFichierXML.nextTag(); // français fermant
                    monFichierXML.nextTag(); // espanol ouvrant
                    monFichierXML.next();    // texte espanol
                }

                if (langueChoisie == "chinois") {
                    monFichierXML.nextTag(); // english fermant
                    monFichierXML.nextTag(); // français ouvrant
                    monFichierXML.next();    // texte français
                    monFichierXML.nextTag(); // français fermant
                    monFichierXML.nextTag(); // espanol ouvrant
                    monFichierXML.next();    // texte espanol
                    monFichierXML.nextTag(); // espagnol fermant
                    monFichierXML.nextTag(); // russe ouvrant
                    monFichierXML.next();    // texte russe
                    monFichierXML.nextTag(); // russe fermant
                    monFichierXML.nextTag(); // chinois ouvrant
                    monFichierXML.next();    // texte chinois
                }

                // on affiche le texte à l'intérieur de la balise sélectionnée
                monMessage.setText(monFichierXML.getText());
            }
        }
        eventType = monFichierXML.next();
    }
}`

这里有一点XML:

<group>
    <word>young1</word>
    <english><strong>English adjectives: a young woman</strong> <br>They are always invariable in gender and number.</english>
    <francais><strong>Les adjectifs: a young woman</strong> <br>Les adjectifs qualificatifs anglais sont invariables. Quand ils sont épithètes, ils se placent avant le substantif: a young woman. Quand ils sont attributs, ils se placent après le verbe: the woman is young.</francais>
    <espanol><strong>Los adjetivos: a young woman</strong> <br>Los adjetivos en inglés son invariables. Cuando son calificativos, se colocan delante del sustantivo: a young woman. Cuando son atributos, se colocan después del verbo: the woman is young.</espanol>
    <chinois><strong>英语形容词:一位年轻的女士。</strong> <br>不论性别和数量都一样</chinois>
</group>`

3 个答案:

答案 0 :(得分:3)

如果你想使用带有TextView的html标签,你应该使用:

 monMessage.setText(Html.fromHtml(monFichierXML.getText()));

答案 1 :(得分:2)

尝试这样的事情

TextView myTextview;

myTextview= (TextView) findViewById(R.id.my_text_view);

htmltext = <your html (markup) character>;

Spanned sp = Html.fromHtml( htmltext );

myTextview.setText(sp);

答案 2 :(得分:0)

尝试以下方法:

<b>English adjectives: a young woman</b> <br>They are always invariable in gender and number.

如果失败,只需将<字符编码为&lt;,结果为:

&lt;b>English adjectives: a young woman&lt;/b> <br>They are always invariable in gender and number.

查看此答案以获取更多信息Bold words in a string of strings.xml in Android