Я создал собственный просмотр списка, который просматривает временную шкалу твиттера и содержит сообщения. Следующая функция получает список сообщений с сервера, анализирует их и добавляет их в список, используемый для заполнения представления списка.
public void populateTimeline(){
Thread populate = new Thread(){
public void run(){
Looper.prepare();
InputStream data = getData(serviceURL); //gets a jsonarray of posts from server $ post_list
if(data!= null)
try {
String jsonString = responsetoString(data);
Log.d(TAG, jsonString);
PostList list = getPostList(jsonString);
List <PostContainer> post_list = list.getPostContainterList();
PostContainer pc;
for (int i = 0; i < post_list.size(); i++) {
pc = post_list.get(i);
mObjectList.add(pc.getPost()); //Adding each post to the list
Log.d(TAG, pc.post.username);
Log.d(TAG, pc.post.message);
}
} catch (Exception e) {
Log.d(TAG, "Exception" + e.getMessage());
e.printStackTrace();
}
Looper.loop();
}
};
populate.start();
}
После вызова этой функции адаптер списка был уведомлен об изменении в наборе данных, вызвав
adapter.notifyDataSetChanged();
в основной теме. Но список не обновляется. Для следа я добавил кнопку в верхней части списка и
снова вызвал populateTimeline () и затем notifyDataSetChanged () при нажатии кнопки. Удивительно, но на этот раз все сообщения появляются в ListView.
Что нужно сделать, чтобы обновить просмотр списка без нажатия кнопки?