- Settings
- SettingsIntelligence
XML:Preference、PreferenceScreen、PreferenceCategory
Fragment:DashboardFragment
Control:BasePreferenceController
Activity:SettingsActivity、SettingsBaseActivity
Android Settings搜索
https://blog.csdn.net/w752325717/article/details/105594779
在SettingsIntelligence模块中,找到SearchActivity,初始化添加了碎片SearchFragment
在SearchFragment的onCreate方法中进行了数据初始化,在onCreateView中加载上图中的布局search_panel.xml。
关键类SearchFragment中,在onCreate时初始化了数据库:
mSearchFeatureProvider.updateIndexAsync(getContext(), this /* indexingCallback */);
1
在DatabaseIndexingManager中开启一个异步任务,去执行初始化操作
获取到的数据会保存到数据库中
修改代码需要关注的是数据最后的整理和使用,在SearchResultAggregator类中,函数mergeSearchResults整合了所有查询到的数据并整理为一个list集合
最终的最终,还是回到了SearchFragment类来,onLoadFinished函数接收了最终的数据,并使用adapter来适配展示数据:
其中有public final ResultPayload payload;对象需要注意,此对象中添加有Intent意图,显然每个要跳转的功能的意图都是不一样的,以此来做数据删选是比较合理的,那么onLoadFinished函数里,可以做如下修改: