在过去的几天里,我一直在尝试从当前的listactivity转到listfragment。我通过一个很好的ArrayAdapter将数据加载到Listactivity中。首先从远程服务器收集数据,然后将其插入SQLite数据库。当显示数据时,我将数据加载到自定义BaseAdapter中。所有这些都很好。我真的很想通过使用listfragments更新我的UI。尤其是因为我有许多使用平板电脑的客户。
我知道如何为平板电脑创建更大的视图,但希望我的应用程序像在iPad中一样呈现。据我了解,可以使用片段执行此操作。到目前为止,我已经设法使listfragments与静态数据一起使用。问题是我不知道如何将阵列适配器中存在的数据加载到listfragment中。
我使用异步任务来检索,存储和呈现列表视图中的数据。
有人可以帮助我将异步任务中的数据加载到列表片段中吗?目前,我将所有内容加载到listactivity的listview中。
谢谢
最佳答案
本质上,它必须相同。只是容器不同(Activity to Fragment),内部实现在理想情况下应保持不变。所以我想说创建AsyncTask使用相同的组件,在onPostExecute()方法内部,您可以执行setListAdapter(adapter),如下所示:
class MyFragment extentsListFragment{
//define constructors if any
public void onResume(){
LoadData loadData = new LoadData();
loadData.execute();
}
//unimplementedMethods
private class LoadData extends AsyncTask<Void, Void, Void> {
private Object object = null;
protected Void doInBackground(Void... params) {
//make a call to the server and save the data in SQLite DB
// Make a call to the database to get your data
object = getObjectFromDB();
return null;
}
protected void onPostExecute(Void result) {
if(object == null || object.length <= 0) {
setListAdapter(null);
return;
}
// assuming object has your data, say it's an Array List, work on it and setListAdapter
adapter = ...
setListAdapter(adapter)
}
private Object getObjectFromDB() {
// do whatever
return object;
}
}
}
关于android - 从Listactivity到Listfragment,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14031093/