我有一个listView的活动。listView包含跨项。
@Override
protected void onStart() {
super.onStart();
Spanned xxx = Html.fromHtml(getString(R.string.xxx));
Spanned yyy = Html.fromHtml(getString(R.string.yyy));
Spanned zzz = Html.fromHtml(getString(R.string.zzz));
...
Spanned abc[] = { xxx, yyy, zzz, ... };
abc_adapter = new ArrayAdapter<Spanned>(this, R.layout.abc, R.id.abc, abc);
abc_view.setAdapter(abc_adapter);由于我有200个跨项目,应用程序变得非常慢。是否有可能在这里使用线程来提高性能?比如获取线程中跨项的格式?
发布于 2013-08-02 23:00:54
如果您要先加载所有项目,然后才显示它们,线程不会有什么帮助(很大)--初始化仍然需要同样长的时间。在一个单独的线程上所做的唯一的事情就是响应性,因为您将加载从UI线程中移开。
为了更快地实现这一点,您应该考虑实现自己的适配器,例如通过扩展ArrayAdapter。在getView()方法中,您将执行Html.fromHtml(stringData[position]);并将textview项的内容设置为生成的Spannable。这确实需要将所有字符串都放在一个数组中。外面有许多例子。
这样做的好处是,您不必在初始化时执行所有fromHtml,但是它们是由适配器动态执行的。
祝好运!
https://stackoverflow.com/questions/18022471
复制相似问题