This is probably not very elegant, but what I'm trying to do is connect to a web service, fetch the JSON, parse it, create an object out of it, add that object to an ArrayList and then use that ArrayList to populate my ListView.

I'm trying to do all of this with AsyncTask.

SUMMARY: doInBackgroud takes a String of a url, uses it to connect to a web service. I get the JSON data as a string, parse it, construct a new object out of the data, and add it to ArrayList. Then in onPostExecute I'm trying to set the listadapter using an ArrayAdapter that utilizes my ArrayList.

Here's what I have:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.io.StringWriter;
import java.io.Writer;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.Arrays;

import org.json.JSONArray;
import org.json.JSONObject;

import oauth.signpost.OAuthConsumer;
import oauth.signpost.basic.DefaultOAuthConsumer;
import android.app.ListActivity;
import android.app.ProgressDialog;
import android.os.AsyncTask;
import android.os.Bundle;
import android.widget.ArrayAdapter;

public class AllOffersListActivity extends ListActivity {

    private static final String CONSUMER_KEY = "bla";
    private static final String CONSUMER_SECRET = "bla";


    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);



        new CreateArrayListTask().execute("http://example.com/sample.json");




    }

    private class CreateArrayListTask extends AsyncTask<String, Void, ArrayList<Offer>> {
        private final ProgressDialog dialog = new ProgressDialog(AllOffersListActivity.this);

        @Override
        protected void onPreExecute() {
            this.dialog.setMessage("Fetching offers...");
            this.dialog.show();

        }
        @Ov
Edit
Report