如何在ListView中输入动态数据(processName和pid)?

时间:2011-12-17 16:58:51

标签: android listview dynamic

我一直在创建一个任务管理器,我可以在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中输入它。

1 个答案:

答案 0 :(得分:1)

您可以将每个流程(String,id等)添加到对象中,然后将其添加到ArrayList<YourObject>。然后构建一个客户适配器(即自定义BaseAdapter)并将其设置为ListView

每次创建新流程时,请添加ArrayList,然后致电notifyDataSetChanged更新ListView

希望这有帮助!