listview列表显示系统应用实例代码

一获取系统应用

packageMgr = getPackageManager();            

        packageList= packageMgr.getInstalledPackages(0);    

 for(PackageInfopi:packageList){

                       PackageInfopackageInfo = pi;

                       AppInfo tmpInfo = new AppInfo();

                       tmpInfo.appName =packageInfo.applicationInfo.loadLabel(getPackageManager()).toString();

                       tmpInfo.appIcon =packageInfo.applicationInfo.loadIcon(getPackageManager());

                       list.add(tmpInfo);

                 }

二ListView列表显示

@Override

         publicView getView(int arg0, View arg1, ViewGroup arg2) {

                            //TODO Auto-generated method stub  

                            ViewHolderholder;

                            //AppInfoappIn = list.get(arg0);

                            holder= new ViewHolder();

                            if(null== arg1){

                                     arg1= layoutInflater.inflate(R.layout.activity_main, null);                                

                                    

                            }

                            holder.txtName= (TextView)arg1.findViewById(R.id.tv);

                            holder.image= (ImageView)arg1.findViewById(R.id.imageView);

                            holder.txtName.setText(list.get(arg0).appName);

                            holder.image.setImageDrawable(list.get(arg0).appIcon);

                            //tv.setText(list.get(arg0));

                            returnarg1;

            }

最后附上代码:

package com.example.applistshow;

 

import java.util.ArrayList;

import java.util.List;

import android.os.Bundle;

import android.app.Activity;

import android.content.Context;

import android.content.pm.ApplicationInfo;

import android.content.pm.PackageInfo;

import android.content.pm.PackageManager;

import android.graphics.drawable.Drawable;

import android.view.LayoutInflater;

import android.view.Menu;

import android.view.View;

import android.view.ViewGroup;

import android.widget.BaseAdapter;

import android.widget.ImageView;

import android.widget.ListView;

import android.widget.TextView;

 

public class MainActivity extends Activity{

         privateListView listView;

         privateTextView tv;

         privateMyAdapter adapter;

         List<PackageInfo>packageList;

         PackageManagerpackageMgr;

         @Override

         protectedvoid onCreate(Bundle savedInstanceState) {

                   super.onCreate(savedInstanceState);

                   setContentView(R.layout.adapter);

                   listView= (ListView)findViewById(R.id.listView1);                            

                           

                           

                   adapter= new MyAdapter(this,getData());

                   listView.setAdapter(adapter);                 

         }

        

         publicclass AppInfo{

                   publicString appName = "";

                   publicDrawable appIcon = null;

         }

        

         publicList<AppInfo> getData(){

                   List<AppInfo>list = new ArrayList<AppInfo>();

                   packageMgr= getPackageManager();            

                   packageList= packageMgr.getInstalledPackages(0);    

                  

                   for(PackageInfopi:packageList){

                            PackageInfopackageInfo = pi;

                       AppInfo tmpInfo = new AppInfo();

                       tmpInfo.appName =packageInfo.applicationInfo.loadLabel(getPackageManager()).toString();

                       tmpInfo.appIcon =packageInfo.applicationInfo.loadIcon(getPackageManager());

                            list.add(tmpInfo);

                   }

                   returnlist;

         }

         @Override

         publicboolean onCreateOptionsMenu(Menu menu) {

                   //Inflate the menu; this adds items to the action bar if it is present.

                   getMenuInflater().inflate(R.menu.activity_main,menu);

                   returntrue;

         }

         publicclass MyAdapter extends BaseAdapter{

                   privateContext context;

                   privateList<AppInfo> list;

                   privatefinal String inflater = Context.LAYOUT_INFLATER_SERVICE;

                   privateLayoutInflater layoutInflater;

                  

                   privateclass ViewHolder{

                            ImageViewimage;

                            TextViewtxtName;

                   }

                  

                   publicMyAdapter(Context c,List<AppInfo> list){

                            if(null!=list){

                            this.list= list;

                            }else{

                                     list= new ArrayList<AppInfo>();

                            }

                            this.context= c;

                            layoutInflater= (LayoutInflater)context.getSystemService(inflater);

                   }

                   @Override

                   publicint getCount() {

                            //TODO Auto-generated method stub

                            returnlist.size();

                   }

 

                   @Override

                   publicObject getItem(int arg0) {

                            //TODO Auto-generated method stub

                            returnnull;

                   }

 

                   @Override

                   publiclong getItemId(int arg0) {

                            //TODO Auto-generated method stub

                            return0;

                   }

 

                   @Override

                   publicView getView(int arg0, View arg1, ViewGroup arg2) {

                            //TODO Auto-generated method stub  

                            ViewHolderholder;

                            //AppInfoappIn = list.get(arg0);

                            holder= new ViewHolder();

                            if(null== arg1){

                                     arg1= layoutInflater.inflate(R.layout.activity_main, null);                                

                                    

                            }

                            holder.txtName= (TextView)arg1.findViewById(R.id.tv);

                            holder.image= (ImageView)arg1.findViewById(R.id.imageView);

                            holder.txtName.setText(list.get(arg0).appName);

                            holder.image.setImageDrawable(list.get(arg0).appIcon);

                            //tv.setText(list.get(arg0));

                            returnarg1;

                   }

                  

         }

}

 

 

 

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

     >

    <ListView

         android:id="@+id/listView1"

         android:layout_width="match_parent"

         android:layout_height="match_parent"

         >

   </ListView>

   

</RelativeLayout>

 

 

 

<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    xmlns:android1="http://schemas.android.com/apk/res/android"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:orientation="horizontal"

    tools:context=".MainActivity" xmlns:android2="http://schemas.android.com/apk/res/android">

 

    <ImageView

        android:id="@+id/imageView"

        android:layout_width="50dp"

        android:layout_height="50dp"/>

   <TextView

        android:id="@+id/tv"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content" 

        android:layout_gravity="center"   

        android:text="@string/hello_world" />

 

</LinearLayout>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值