У меня есть такая строка:

String s="12 year old Manick is <b>three</b> times as old as his brother Rahul. How old will Manick be when he is twice as old as Rahul ?";

Когда я устанавливаю эту строку в TextView, результат будет таким:

output

Я хочу, чтобы результат был таким:

12-летний Маник в три раза старше своего брата Рахула. Сколько лет будет Манику, когда он будет вдвое старше Рахула?

Что нужно сделать с исходной строкой, чтобы получить желаемый результат в TextView?

Фактически, мое требование - извлечь текст внутри тегов HTML, применить полужирное форматирование к тексту внутри тега и удалить теги из строки перед отображением в TextView.

Заранее спасибо!

P.S .: Строка взята из файла XML, поэтому она может отличаться!

0
kittu88 1 Апр 2013 в 11:27
Вы получаете текст динамически или статически?
 – 
Nezam
1 Апр 2013 в 11:31
Динамически из синтаксического анализа XML
 – 
kittu88
1 Апр 2013 в 11:33

1 ответ

Лучший ответ

Вы можете попробовать определить свой текст для TextView в strings.xml. Затем, если вы установите из html, он может быть перенесен в соответствии с размером экрана:

Итак, вы можете попробовать это:

<string name="nice_html">
<![CDATA["12 year old Manick is &lt;b&gt;three&lt;/b&gt; times as old as his brother Rahul. How old will Manick be when he is twice as old as Rahul ?";
]]></string>

Затем в вашем коде:

TextView foo = (TextView)findViewById(R.id.foo); foo.setText(Html.fromHtml(getString(R.string.nice_html)));

РЕДАКТИРОВАТЬ:

Просто измените последний код на

//string s already defined in the question

TextView foo = (TextView)findViewById(R.id.foo); 
foo.setText(Html.fromHtml(getString(s)));
1
Ahmad 1 Апр 2013 в 11:40
Это невозможно сделать, так как строка поступает из файлов XML. Это не статично!
 – 
kittu88
1 Апр 2013 в 11:32
Рад помочь .. ты в калькутте? почему бы тебе не добавить меня в gtalk или какой-нибудь мессенджер?
 – 
Nezam
1 Апр 2013 в 11:49