我一直在创建一个任务管理器,我可以在textview中显示进程的名称,pid等。这可以在这里看到:http://i.imgur.com/1zpXg.jpg
我想将所有这些转换为List视图,这样就不需要输入pid然后按下kill按钮。
public void showProcess(){//display process currently running processes
Context context = getApplicationContext();
ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
PackageManager pm = this.getPackageManager();
List<ActivityManager.RunningAppProcessInfo> list = activityManager.getRunningAppProcesses();
try{
if(list != null){
for(int i=0;i<list.size();++i){
//lists the application name, process name and corresponding PIDs in TEXTVIEW
CharSequence c = pm.getApplicationLabel(pm.getApplicationInfo(list.get(i).processName, PackageManager.GET_META_DATA));
dispProcesses.append(c.toString()+"\n"+list.get(i).processName + "\t" + list.get(i).pid+ "\n\n");
}
}
}
catch(Exception e){
}
}
从上面的代码中可以看出,可以检索那里的数据并轻松地将其附加到TextView中。但是,当涉及到ListView时,情况并非如此。其中,那种数据应存储在某个数组中,以便能够显示所有数据。
我的问题:如何将这种动态数据(processName,PID,appName)存储到ListView中?
我已经非常熟悉ListView的静态数据版本了。但是,我的任务管理器生成动态数据,我不知道如何在ListView中输入它。
答案 0 :(得分:1)
您可以将每个流程(String
,id等)添加到对象中,然后将其添加到ArrayList<YourObject>
。然后构建一个客户适配器(即自定义BaseAdapter
)并将其设置为ListView
。
每次创建新流程时,请添加ArrayList
,然后致电notifyDataSetChanged
更新ListView
。
希望这有帮助!