Как отобразить HTML текст в listView. Я не понимаю ... listView работает без ошибок (отображает текст и числа), текст с разметкой HTML отображается как - строка.
Я хочу отобразить математическую или химическую фолмулу:
X <sup><small>n</small> </sup> + Y <sup>
Android Отображение HTML в ListView - ответы отсюда у меня не работают.
Может, я неправильно определяю массив?
В чем моя ошибка? (Я новичок ie)
Ниже мой код:
<string-array name="catNames">
<item><b>Name 1</b></item>
<item><big>Name 1<small>Name 1</small>Name 1<small>Name 1</small></big></item>
<item><p><b>Lorem ipsum dolor sit amet</b></p></item>
</string-array>
//
ListView listView = (ListView) findViewById(R.id.listView);
String[] catNames = getResources().getStringArray(R.array.catNames);
String[] catNames2 = getResources().getStringArray(R.array.catNames2);
String[] catNames3 = getResources().getStringArray(R.array.catNames3);
int[] catNames4 = getResources().getIntArray(R.array.catNames4);
//
ArrayList<HashMap<String, Object>> data = new ArrayList<>(catNames.length);
HashMap<String, Object> map;
//
for (int i = 0; i < catNames3.length; i++) {
map = new HashMap<>();
map.put("CatName", catNames[i]);
map.put("CatName2", catNames2[i]);
map.put("CatName3", catNames3[i]);
map.put("CatName4", catNames4[i]);
data.add(map);
}
//
String[] from = {"CatName", "CatName2", "CatName3", "CatName4"};
int[] to = {R.id.textView1, R.id.textView2, R.id.textView3, R.id.textView4,};
//
SimpleAdapter adapter = new SimpleAdapter(this, data, R.layout.list_item, from, to);
adapter.setViewBinder(new TableActivity.MyViewBinder());
listView.setAdapter(adapter);
/////////////////////////////////////////////////////
class MyViewBinder implements SimpleAdapter.ViewBinder {
@Override
public boolean setViewValue(View view, Object data, String textRepresentation) {
int red = getResources().getColor(R.color.colorPrimary);
//
int i = 0;
switch (view.getId()) {
// LinearLayout
case R.id.textView3:
view.setBackgroundColor(red);
//((TextView)view).setText(Html.fromHtml(data + " " + textRepresentation));
((TextView)view).setText(Html.fromHtml(textRepresentation));
return true;
}
return false;
}
}