0

wpCategories = JsonToElement.getllAllCategory();ボタンメットフッドでのみ呼び出すと、onClick正常に機能します。(wpCategoriesデータでいっぱいになります)。しかし、これをに入れるとasynctaskwpCategoriesnullを返します。(doInBackground呼び出されていませんか?)

クリックメットフッドのボタンは次のとおりです。

public void onImageGridClick(View view) {       
    new GetJsonElementTask().execute();
    Intent intent = new Intent(this, CategoryGridActivity.class);       
    intent.putParcelableArrayListExtra(Extra.IMAGES, wpCategories);
    startActivity(intent);
}

そしてasyncTask:

private class GetJsonElementTask extends AsyncTask<Void, Integer, String> {
    @Override
    protected void onPreExecute() {
        progressDialog = ProgressDialog.show(HomeActivity.this, "",
                "Loading...");          
    }
    @Override
    protected String doInBackground(Void... arg0) {
        wpCategories = JsonToElement.getllAllCategory();
        return null;
    }

    @Override
    protected void onPostExecute(String value) {
        progressDialog.dismiss();
    }

    @Override
    protected void onProgressUpdate(Integer... progress) {
        Log.v("DEBUG_LOG", "In onProgressUpdate");
    }

}
4

2 に答える 2

2

onPostExecuteこのメソッドはdoInBackground実行完了後に実行されるため、内部でアクティビティを開始します。

 @Override
    protected String doInBackground(Void... arg0) {
        wpCategories = JsonToElement.getllAllCategory();

        return wpCategories;  //<<< return value from here
    }
 @Override
    protected void onPostExecute(String value) {
        progressDialog.dismiss();

        Intent intent = new Intent(this, CategoryGridActivity.class);       
        intent.putParcelableArrayListExtra(Extra.IMAGES, value);
        startActivity(intent);
    }
于 2013-01-08T16:49:50.153 に答える
1

フォローしてみてください

public void onImageGridClick(View view) {       
    new GetJsonElementTask().execute();
}

    public void startCategoryGridActivity(){
           Intent intent = new Intent(this, CategoryGridActivity.class);        
       intent.putParcelableArrayListExtra(Extra.IMAGES, wpCategories);
       startActivity(intent);
    }

そしてasyncTask:

private class GetJsonElementTask extends AsyncTask<Void, Integer, String> {
    @Override
    protected void onPreExecute() {
        progressDialog = ProgressDialog.show(HomeActivity.this, "",
                "Loading...");          
    }
    @Override
    protected String doInBackground(Void... arg0) {
        wpCategories = JsonToElement.getllAllCategory();
        return null;
    }

    @Override
    protected void onPostExecute(String value) {
        progressDialog.dismiss();
            startCategoryGridActivity();
    }

    @Override
    protected void onProgressUpdate(Integer... progress) {
        Log.v("DEBUG_LOG", "In onProgressUpdate");
    }

}
于 2013-01-08T16:54:18.843 に答える