1

ここ数日間、私は現在のリストアクティビティからリストフラグメントに移行しようとしています。うまく機能する ArrayAdapter を介してデータを Listactivity にロードします。データは最初にリモート サーバーから収集され、次に SQLite データベースに挿入されます。データが表示されたら、データをカスタム BaseAdapter にロードします。これはすべてうまくいきます。listfragments を使用して UI を更新したいと考えています。これは特に、タブレットを使用しているクライアントが多いためです。

タブレット用に大きなビューを作成する方法は知っていますが、アプリを iPad のように表示したいと考えています。私の理解では、フラグメントでこれを行うことが可能です。これまでのところ、リストフラグメントを静的データで動作させることができました。問題は、配列アダプターに存在するデータをリストフラグメントにロードする方法がわからないことです。

非同期タスクを使用して、リストビューでデータを取得、保存、および表示します。

非同期タスクからリストフラグメントにデータをロードするのを手伝ってくれる人はいますか? 現在、リストアクティビティのリストビューにすべてをロードしています。

ありがとう

4

2 に答える 2

1

本質的には同じでなければなりません。コンテナーが異なるだけで (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;
    }
}

}

于 2012-12-25T13:53:50.707 に答える