- list内容放于listItems中
public class ListItem { private int list_left; private int list_right; public ListItem(int left, int right) { this.list_left = left; this.list_right = right; } ...... }
private List<ListItem> listItems = new ArrayList<>();
- 更新时在Adapter内调用
notifyDataSetChanged();
public void updateItem() { LogPrint.i(TAG,"updateItem."); notifyDataSetChanged(); }
在活动中需要更新的位置调用
updateItem()
((ItemAdapter) adapter).updateItem();
- listItems初始化在Activity onCreate中进行的
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ...... /*list初始化*/ initItems(); }
private void initItems() { ListItem item1 = new ListItem(...); ...... ListItem item12 = new ListItem(...); listItems.add(item1); ...... listItems.add(item12); }
-
由于定义listItems与adapter都未加static修饰,退出时Activity销毁后,再进入时,新的活动对象有自己的一份数据,与之前互不影响
private ListAdapter adapter; private List<ListItem> listItems = new ArrayList<>(); 修改后: private static ListAdapter adapter; private static List<ListItem> listItems = new ArrayList<>();
- 上述两个变量都修改为静态变量后,由于每次启动Activity都会初始化listItems,每启动一次增加12条相同的数据,所以在
onDestroy()中将listItems清除
@Override protected void onDestroy() { super.onDestroy(); listItems.clear(); }
- 仅作为学习记录。
Android Adapter的notifyDataSetChanged更新listView显示,第一次进入包含list的Activity时可以更新,后续进入Activity更新无效
最新推荐文章于 2021-05-27 18:58:19 发布