Launcher 功能表中优先显示以指定字符串开头的包名的应用
来源:互联网 发布:淘宝客户端删除评价 编辑:程序博客网 时间:2024/05/22 05:09
launcher 中功能表默认排序是按照应用名字来排的。
既然可以按照名字排序当然也可以按照包名来排序。
找到排序的地方,然后重写一下排序的方法,这个问题就解决了。
应用列表对应launcher 中的AppsCustomizePagedView.java ,
文件中中有一个public void setApps(ArrayList<ApplicationInfo> list);的方法就是来设置应用列表的。
其中方法中Collections.sort(mApps, LauncherModel.APP_NAME_COMPARATOR); 就是排序了。
找到LauncherModel.APP_NAME_COMPARATOR 这个Comparator。
增加红色的部分的代码,就能实现在功能表中优先排指定字符串开头包名的应用了。
public static final Comparator<ApplicationInfo> APP_NAME_COMPARATOR
= new Comparator<ApplicationInfo>() {
public final int compare(ApplicationInfo a, ApplicationInfo b) {
String privatePackage = "com.test";
if(a.getPackageName().startsWith(privatePackage)&& b.getPackageName().startsWith(privatePackage)){
}else if(a.getPackageName().startsWith(privatePackage)&& !b.getPackageName().startsWith(privatePackage)){
return -1;
}else if(!a.getPackageName().startsWith(privatePackage)&& b.getPackageName().startsWith(privatePackage)){
return 1;
}
int result = sCollator.compare(a.title.toString(), b.title.toString());
if (result == 0) {
result = a.componentName.compareTo(b.componentName);
}
return result;
}
};
- Launcher 功能表中优先显示以指定字符串开头的包名的应用
- MTK Launcher 应用的包名以及意图launcher.db
- MySQL中找出数据库中以同一字符串开头的表名的所有表
- java包名以”java“开头会报错的原因
- 判断是否以指定的字符串开头或结尾
- jquery选择器选择以指定字符串开头的项
- 显示\隐藏 Eclipse项目中以点开头的文件
- mysql中查询不以某个字符串开头的字段
- Eclipse 显示以点号(.)开头的文件
- oracle 插入的字符串以0开头
- 函数对象的应用:在指定的文件中显示指定长度的字符串
- SpringMVC中以is开头的字段名返回JSON问题
- Java应用类的包名为什么不能以java.开头?
- Java应用类的包名为什么不能以java.开头?
- SQL Server中删除以指定字符开头的存储过程
- Java去掉指定字符串的开头的指定字符
- as中修改应用的包名
- phonegap创建工程 生成指定的包名 类名 应用名
- 基于Android平台的ToDoList APP
- MySql获取系统时间
- Linux的五个查找命令
- cocos2dx进阶学习之CCSpriteBatchNode
- ant build.xml中classpath
- Launcher 功能表中优先显示以指定字符串开头的包名的应用
- SpringMVC 前台提交不同类多个对象或同一类多个对象集合到后台
- 浏览器的加载与页面性能优化
- “大数据处理技术 - 基于Hadoop的实战”北上广三地热捧!
- 丁香园:得医生者得天下
- 【LeetCode】Triangle
- 二叉排序树增删改查
- HTTP协议头部与Keep-Alive模式详解
- win8如何找到itunes的默认备份文件