为了在 ListView 中列出所有正在运行的应用程序,我需要将对象数组转换为字符串数组。
通过这段代码,我读出了所有正在运行的进程:
private String[] runningProcesses() {
ActivityManager am = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);
List l = am.getRunningAppProcesses();
Iterator i = l.iterator();
PackageManager pm = this.getPackageManager();
while (i.hasNext()) {
ActivityManager.RunningAppProcessInfo info = (ActivityManager.RunningAppProcessInfo) (i.next());
try {
c = pm.getApplicationLabel(pm.getApplicationInfo(info.processName, PackageManager.GET_META_DATA));
Log.w("LABEL", c.toString());
} catch (Exception e) {
//Name Not FOund Exception
}
}
Object[] object = l.toArray();
如何将 object
转换为 string[]
以便在 listView 中列出所有正在运行的进程?
非常感谢
最佳答案
您不能转换 List<RunningAppProcessInfo>
到 String[]
直接地。相反,将标签(您正在记录的)存储到单独的 List
中。并在返回时将其转换为数组。
List<String> labels = new ArrayList<String>();
while (i.hasNext()) {
ActivityManager.RunningAppProcessInfo info = (ActivityManager.RunningAppProcessInfo) (i.next());
try {
c = pm.getApplicationLabel(pm.getApplicationInfo(info.processName, PackageManager.GET_META_DATA));
Log.w("LABEL", c.toString());
labels.add(c.toString());
} catch (Exception e) {
//Name Not FOund Exception
}
}
// convert to array and return
return labels.toArray(new String[0]);
关于android - 如何将 Object[] 转换为 String[ ],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28769120/