Хотелось бы услышать другие мнения по данному вопросу, но я решил этот вопрос следующим образом:
1) подключил библиотеку -
https://github.com/PrivacyApps/html-textview
2) если в БД есть теги таблицы
<table></table>
, то вместо таблицы отображается ссылка при нажатии на которую открывается WebView. Соответственно, при помощи putExtra передаю таблицу и в WebView получаю ее.
Ниже представлен код, который я использовал:
1) build.gradle -->
compile 'org.sufficientlysecure:html-textview:3.5'
2) Так как я формирую активити через recyclerview, то следующий код добавил в адаптер.
Добавляю внутренний класс:
class ClickableTableSpanImpl extends ClickableTableSpan {
@Override
public ClickableTableSpan newInstance() {
return new ClickableTableSpanImpl();
}
@Override
public void onClick(View widget) {
Intent tableIntent = new Intent(mContext, WebViewActivity.class);
tableIntent.putExtra("extra_table", getTableHtml());
mContext.startActivity(tableIntent);
}
}
В методе onbindViewHolder:
descriptionViewHolder.htmlTextViewText.setClickableTableSpan(new ClickableTableSpanImpl());
DrawTableLinkSpan drawTableLinkSpan = new DrawTableLinkSpan();
drawTableLinkSpan.setTableLinkText("-- Просмотреть таблицу --");
descriptionViewHolder.htmlTextViewText.setDrawTableLinkSpan(drawTableLinkSpan);
descriptionViewHolder.htmlTextViewText.setHtml(descriptionList.get(position).getText());
В WebViewActivity onCreate():
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_web_view);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
// Получаем таблицу
String webViewTable = getIntent().getStringExtra("extra_table");
webView = (WebView) findViewById(R.id.webViewTable);
webView.loadData(webViewTable,"text/html; charset=UTF-8", null);
}