我有一张表,我想要显示大约1k行。这个任务显然会阻塞UI线程,导致黑屏,而onCreate()构建表。
我通过使用AsyncTask解决了这个问题,AsyncTask在“doInBackground”函数中构建了想要的TableLayout并将其显示在“onPostExecute”函数中。
问题#1: 有什么更好的练习我不熟悉吗?
问题#2: 我的(简化)“doInBackground”函数如下所示:
protected Void doInBackground(Void... v) {
tmpTableLayout = populateTable("");
return null;
}
我的(简化)“onPostExecute”函数如下所示:
protected void onPostExecute(Void v) {
TableLayout ct = (TableLayout)findViewById(R.id.RealTable);
ct.removeAllViews();
/* WHATS HERE? */
}
我应该写什么而不是“这里有什么?”在最后一行代码中,为了在“ct”中显示“tmpTableLayout”的内容?
提前致谢!
答案 0 :(得分:2)
您确定要一次性显示所有内容吗?
一种方法是在用户向下滚动时动态加载更多行。因此,有一个滚动侦听器,用于检查用户是否正在接近显示的内容的末尾,从而启动AsyncTask或加载更多内容的线程。
实施例: Android List Activity with dynamically loaded images form the web in android
答案 1 :(得分:0)
我可能会使用ListView
和CursorAdapter
让Android管理为您提取数据。请参阅接受的答案here。