Android的adapter.notifyDataSetChanged()不工作?

我正在编写一个应用程序,需要从用户获取input,将其传递给服务器,该服务器返回一个JSONstring,然后在ListView中显示其parsing的内容。 我目前通过扩展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(); } } } 

(这是我的第一篇文章,所以我提前道歉,如果我试图使一个代码块失败)

在onPostExecute方法,设置listItems等于项目后,如果我打印listItems的内容,他们正是我想要的。 但是,由于某种原因,从onPostExecute执行时,adapter.notifyDataSetChanged()似乎什么都不做(当它从主线程调用,它工作正常)。

如果任何人有任何想法和/或如何解决它,我真的很感激它。 谢谢!

Solutions Collecting From Web of "Android的adapter.notifyDataSetChanged()不工作?"