如题:List有数据若干,比如“北京”,“上海”。输入北京,如果list里有这条数据就展示到listview中
如题:List有数据若干,比如“北京”,“上海”。输入北京,如果list里有这条数据就展示到listview中
首先listview的数据源肯定不能是这个包含了若干数据的list了,这里叫它mDatas。
大致的逻辑如下:
List<String> list = new ArrayList<>(); //包含了若干数据的集合
List<String> mDatas = new ArrayList<>(); //adapter中使用的集合
if (list.contains("北京")) {
mDatas.add("北京");
mAdapter.notifyDataSetChanged();
}
这类问题分两步走:
A. 数据来源通常是:本地数据库和服务器接口
B. 不论是本地还是服务器数据,都是使用
Loader
来实现,它能帮你处理页面生命周期的很多问题C. 如果你用
AsyncTask
那就需要根据页面的生命周期自行管理检索数据的任务(关闭页面时的资源释放、取消界面展示的回调函数)数据展示:
A.
ListView
orRecyclerView
二选一B. 当
Loader
加载完,它会自行调用LoaderCallbacks.OnLoadFinished(Loader<D>, D)
,也就是在这个回调中,将数据刷新到列表中