在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Android/ Android List有數(shù)據(jù)若干,比如“北京”,“上?!薄]斎氡本?,如果lis

Android List有數(shù)據(jù)若干,比如“北京”,“上海”。輸入北京,如果list里有這條數(shù)據(jù)就展示到listview中

如題:List有數(shù)據(jù)若干,比如“北京”,“上?!薄]斎氡本?,如果list里有這條數(shù)據(jù)就展示到listview中

回答
編輯回答
局外人
題主說的應該是建議搜索(聯(lián)想輸入)的功能吧

這類問題分兩步走:

  1. 數(shù)據(jù)檢索:
    A. 數(shù)據(jù)來源通常是:本地數(shù)據(jù)庫服務器接口
    B. 不論是本地還是服務器數(shù)據(jù),都是使用Loader來實現(xiàn),它能幫你處理頁面生命周期的很多問題
    C. 如果你用AsyncTask那就需要根據(jù)頁面的生命周期自行管理檢索數(shù)據(jù)的任務(關(guān)閉頁面時的資源釋放、取消界面展示的回調(diào)函數(shù))
  2. 數(shù)據(jù)展示:
    A. ListView or RecyclerView二選一
    B. 當Loader加載完,它會自行調(diào)用LoaderCallbacks.OnLoadFinished(Loader<D>, D),也就是在這個回調(diào)中,將數(shù)據(jù)刷新到列表中

2017年4月15日 05:51
編輯回答
情皺

首先listview的數(shù)據(jù)源肯定不能是這個包含了若干數(shù)據(jù)的list了,這里叫它mDatas。
大致的邏輯如下:

        List<String> list = new ArrayList<>(); //包含了若干數(shù)據(jù)的集合
        List<String> mDatas = new ArrayList<>(); //adapter中使用的集合
        if (list.contains("北京")) {
            mDatas.add("北京");
            mAdapter.notifyDataSetChanged();
        }
2018年7月20日 13:25