3

私は次の問題を抱えています:私はアンドロイドからmysqlからいくつかのデータを取得する必要があり、そのために私はphpでそれを行いますが、私はアンドロイド4.0を使用しているのでAsyncTask。問題は、結果を返す方法がわからないことarraylistです。

4

2 に答える 2

2

を作成し、(コンストラクターで)interfaceに渡し、AsyncTaskメソッドを呼び出すことができますonPostExecute

例えば:

あなたのインターフェース:

public interface OnTaskCompleted{
    void onTaskCompleted(values);
}

あなたの活動:

public YourActivity implements OnTaskCompleted{
    //your Activity
    YourTask  task = new YourTask(this); // here is the initalization code for your asyncTask
}

そしてあなたの AsyncTask:

public YourTask extends AsyncTask<Object,Object,Object>{ //change Object to required type
    private OnTaskCompleted listener;

    public YourTask(OnTaskCompleted listener){
        this.listener=listener;
    }

    //required methods

    protected void onPostExecute(Object o){
        //your stuff
        listener.onTaskCompleted(values);
    }
}
于 2012-12-11T12:52:05.333 に答える
1

便利な方法は、AsyncTaskをActivityクラス内の匿名クラスにすることです。次に、onPostExecuteメソッドで、そのAsyncTaskを作成するメソッドからActivity+finalオブジェクトに属するすべてのフィールドにアクセスできます。

于 2012-12-11T13:02:00.060 に答える