【发布时间】:2018-11-17 12:57:10
【问题描述】:
我正在为我的手机制作一个启动器,我需要按字母对应用程序进行排序。
Appslist = ArrayList<AppInfo>()
val i = Intent(Intent.ACTION_MAIN, null)
i.addCategory(Intent.CATEGORY_LAUNCHER)
val allApps = this.packageManager.queryIntentActivities(i, 0)
for (ri in allApps) {
val app = AppInfo()
app.label = ri.loadLabel(this.packageManager)
app.packageName = ri.activityInfo.packageName
app.icon = ri.activityInfo.loadIcon(this.packageManager)
if(app.label?.toString()!!.length >= searchWord.length && app.label?.toString()!!.substring(0, searchWord.length) == searchWord.toUpperCase() && searchWord != "" ||
app.label?.toString()!!.length >= searchWord.length && app.label?.toString()!!.substring(0, searchWord.length) == searchWord.toLowerCase() && searchWord != "" ||
app.label?.toString()!!.length >= searchWord.length && app.label?.toString()!!.substring(0, searchWord.length) == searchWord.capitalize() && searchWord != "" ||
app.label?.toString()!!.length >= searchWord.length && app.label?.toString()!!.substring(0, searchWord.length) == searchWord && searchWord != ""){
if(app.packageName != "com.david.launcher" ){
Appslist.add(app)
}
}
if(searchWord == ""){
if(app.packageName != "com.david.launcher"){
Appslist.add(app)
}
}
}
这是我的列表类型(不知道是不是叫列表类型,但希望你能理解):
public class AppInfo {
internal var label: CharSequence? = null
internal var packageName: CharSequence? = null
internal var icon: Drawable? = null
internal var isInFav: Boolean? = false
【问题讨论】:
-
使用 Collections.sort(your_list) 这会给你排序列表
-
@pratikvekariya 您的评论不正确,它是未实现
Comparable的类的列表,因此没有自然顺序,您的方法失败,此外它对于 Kotlin 来说也不是惯用的。跨度> -
大卫,您的问题得到解答还是在寻找其他东西?
-
是的。 ( :
标签: kotlin