gpt4 book ai didi

android - 如何获取运行应用程序的图标并保存在 Array_list 中?

转载 作者:行者123 更新时间:2023-11-29 20:18:02 24 4
gpt4 key购买 nike

我想让图标运行应用程序并显示在 listView 中。我可以获得应用程序的名称。我会在 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;
}

列表.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);

}

在获取 View 中

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.....

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

最佳答案

假设 image_icon 属于 custom_item_listview.xml

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

错了。应该是

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

喜欢你的TextView

关于android - 如何获取运行应用程序的图标并保存在 Array_list 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33584682/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com