2015-09-28 2 views
3

Я пытаюсь отображать с улучшениями текст, полученный изнутри пары тегов в XML-файле. Вот открывающий тег, текст и закрывающий тег:набор жирных слов в тексте из xml

< английских > < сильных > английских прилагательных: молодая женщина < / сильной > </ш > Они всегда неизменны в роде и числе. </английский > Но вместо просмотра расширенного текста, все, что я вижу, это точно выше текст между < английским > и </английским > тегами, с вещами, как < сильного >. Как это решить? Благодаря

Вот метод для чтения XML-File`

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>` 
+0

Как вы пытаетесь отобразить? –

+0

Я использую метод, но я не могу показать его в этом комментарии :-( – Andy

+0

Вы можете изменить свой вопрос и вставить свой метод. –

ответ

3

Если вы хотите использовать HTML-теги с TextView вы должны использовать:

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

Мне кажется, что это будет совсем другая архитектура. Возможно ли еще читать xml? – Andy

+0

xml не имеет прямого отношения к вам просто введите html внутри Html.fromHtml ('your html'). Не имеет значения, откуда у вас есть html. –

+0

Работает отлично !!! – Andy

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

+0

К сожалению, это не работает он < сильный > или < ...) – Andy

+0

Как вы показываете строку после? –

2

попробовать что-то вроде этого

TextView myTextview; 

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

htmltext = <your html (markup) character>; 

Spanned sp = Html.fromHtml(htmltext); 

myTextview.setText(sp); 
Смежные вопросы