【问题标题】:how get icon running apps and save in Array_list?如何让图标运行应用程序并保存在 Array_list 中?
【发布时间】:2015-11-07 15:58:25
【问题描述】:

我想让图标运行应用程序并显示在 listView 中。 我可以得到应用程序的名称。我将在列表视图中显示,但是 我使用以下代码 管理器.java

   public class Manager  {
  //other methods


   public ArrayList<Drawable> getListApp()
{
    my_packge_name=new ArrayList<String>();
    my_packge_icon=new ArrayList<Drawable>();

    PackageManager pm = base_context.getPackageManager();;
    ActivityManager am=(ActivityManager) base_context.getSystemService(Context.ACTIVITY_SERVICE);
    List<ActivityManager.RunningAppProcessInfo> runningAppProcessInfo = am.getRunningAppProcesses();
    for (int i = 0; i < runningAppProcessInfo.size(); i++) 
    {
        String s=runningAppProcessInfo.get(i).processName;
        try {
        ApplicationInfo ap= pm.getApplicationInfo(s, PackageManager.GET_META_DATA);

        if( pm.getLaunchIntentForPackage(ap.packageName) != null ){
            String currAppName = pm.getApplicationLabel(ap).toString();
            Drawable icon=pm.getApplicationIcon(ap);

               my_packge_icon.add(icon);
          //  my_packge_name.add(currAppName);

           //This app is a non-system app
}
    return my_packge_icon;
 }

List.java

protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_manager);
    list=(ListView)findViewById(R.id.listView1);

    arr_icons= new ArrayList<Drawable> (new    Manager(getBaseContext()).getListApp());

    adapter=new Myadapter(getBaseContext());
    list.setAdapter(adapter);

}

在 GetView 中

if(convertView==null)
        {
            Holder=new ViewHolder();
            convertView=myInflater.inflate(R.layout.custom_item_listview,null );
            Holder.title=(TextView)convertView.findViewById(R.id.title);
            Holder.icon=(ImageView)findViewById(R.id.image_icon);
            convertView.setTag(Holder);

        }
        else
        Holder=(ViewHolder) convertView.getTag();

       Holder.icon.setImageDrawable(arr_icons.get(position));

}

错误:

  Java.lang.NullPointerException.....

当我运行正确的所有程序的名称时。 但是当我得到这个错误的所有程序图标时。 我不知道为什么数组没有初始化。

【问题讨论】:

  • 显示Myadapter 类代码

标签: android arraylist android-icons


【解决方案1】:

假设image_icon属于custom_item_listview.xml

 Holder.icon=(ImageView)findViewById(R.id.image_icon);

错了。应该是

 Holder.icon=(ImageView)convertView.findViewById(R.id.image_icon);

喜欢你的TextView

【讨论】:

  • 是的,你说得对。非常感谢您的帮助
【解决方案2】:

Holder.iconnull。尝试检查 id。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-04
    • 2014-12-04
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    • 2021-07-21
    相关资源
    最近更新 更多