Tôi biết đây là phản hồi muộn nhưng tôi đã gặp phải một vấn đề tương tự và tôi đã giải quyết nó bằng cách sử dụng notifyDataSetChanged()
đúng nơi.
Vì vậy, tình hình của tôi là như sau.
Tôi đã phải cập nhật một listview trong tab thanh hành động (đoạn) với nội dung được trả về từ một hoạt động hoàn toàn khác. Tuy nhiên, ban đầu, listview sẽ không phản ánh bất kỳ thay đổi nào. Tuy nhiên, khi tôi nhấp vào một tab khác và sau đó quay lại tab mong muốn, listview sẽ được cập nhật với nội dung chính xác từ hoạt động khác. Vì vậy, để giải quyết điều này tôi đã sử dụngnotifyDataSetChanged()
bộ điều hợp thanh hành động trong mã của hoạt động phải trả lại dữ liệu.
Đây là đoạn mã mà tôi đã sử dụng trong hoạt động.
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId())
{
case R.id.action_new_forward:
FragmentTab2.mListAdapter.notifyDataSetChanged();//this updates the adapter in my action bar tab
Intent ina = new Intent(getApplicationContext(), MainActivity.class);
ina.putExtra("stra", values1);
startActivity(ina);// This is the code to start the parent activity of my action bar tab(fragment).
}
}
Hoạt động này sẽ trả về một số dữ liệu FragmentTab2
và nó sẽ trực tiếp cập nhật danh sách của tôi vào FragmentTab2
.
Hy vọng ai đó thấy điều này hữu ích!