Android adapter.notifyDataSetChanged () funktioniert nicht?

Ich schreibe eine App, die eine Eingabe von dem Benutzer benötigt, übergibt sie an einen Server, der einen JSON-String zurückgibt und dann seinen analysierten Inhalt in einem ListView anzeigt. Ich mache das derzeit durch die Erweiterung von AsyncTask:

//stripped down version public class main extends ListActivity { ArrayList<String> listItems = new ArrayList<String>(); ArrayAdapter<String> adapter; final EditText input = (EditText)findViewById(R.id.input); input.addTextChangedListener(new TextWatcher() { public void onTextChanged(CharSequence s, int start, int before, int count) { if(!input.getText().toString().equals("")) { new GetDataTask().execute(input.getText().toString()); } } }); private class GetDataTask extends AsyncTask<String, Void, ArrayList<String>> { protected ArrayList<String> doInBackground(String... query) { URL url = new URL("http://myserversaddressgoeshere.com/search/thequerygoeshere"); URLConnection conn = url.openConnection(); BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream())); ArrayList<String> items = new ArrayList<String>(); //the code that parses the JSON goes here; it writes some strings to items return items; } protected void onPostExecute(ArrayList<String> items) { listItems = items; adapter.notifyDataSetChanged(); } } } 

(Dies ist meine erste Post, so dass ich mich im Voraus entschuldigen, wenn mein Versuch, dass ein Code-Block fehlschlägt)

In der onPostExecute-Methode, nach dem Einstellen von listItems gleich den Items, wenn ich den Inhalt von listItems ausdrucke, sind sie genau das, was ich will. Aber aus irgendeinem Grund, wenn es von onPostExecute ausgeführt wird, scheint adapter.notifyDataSetChanged () nichts zu tun (wenn es aus dem Haupt-Thread aufgerufen wird, funktioniert es gut).

Wenn jemand eine Ahnung hat, was los ist und / oder wie man es beheben kann, würde ich es wirklich schätzen. Vielen Dank!

Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.