在过去的几天里,我一直在尝试从当前的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/

10-08 21:58