Android:GridView类似桌面显示所有应用


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
public  class  MainActivity  extends  Activity
{
     private  List<ResolveInfo> mApps =  null ;
     private  ArrayList<HashMap<String, Object>> data =  null ;
     private  HashMap<String, Object> hashMap =  null ;
       
     class  ViewHolder
     {
         ImageView viewImg;
         TextView viewName;
     }
     @Override
     protected  void  onCreate(Bundle savedInstanceState)
     {
         super .onCreate(savedInstanceState);
         loadapp();
         setContentView(R.layout.activity_main);
           
         GridView gridView = (GridView) findViewById(R.id.gridView1);
         BaseAdapter adapter =  new  BaseAdapter()
         {
               
             @Override
             public  View getView( int  position, View convertView, ViewGroup parent)
             {
                 LinearLayout layout;
                 ViewHolder holder =  new  ViewHolder();
                 if (convertView ==  null )
                 {
                     LayoutInflater inflater = getLayoutInflater();
                     layout = (LinearLayout) inflater.inflate(R.layout.linelayout,  null );
                       
                     holder.viewImg = (ImageView) layout.findViewById(R.id.imageView1);
                     holder.viewName = (TextView) layout.findViewById(R.id.textView1);
                     layout.setTag(holder);
                 }
                 else
                 {
                     layout = (LinearLayout) convertView;
                     holder = (ViewHolder) layout.getTag();
                 }
                   
                 ResolveInfo info = mApps.get(position);
                 holder.viewImg.setImageDrawable(info.activityInfo.loadIcon(getPackageManager()));
                 holder.viewName.setText(info.activityInfo.loadLabel(getPackageManager()).toString());
                 return  layout;
             }
               
             @Override
             public  long  getItemId( int  position)
             {
                 return  position;
             }
               
             @Override
             public  Object getItem( int  position)
             {
                 return  mApps.get(position);
             }
               
             @Override
             public  int  getCount()
             {
                 return  mApps.size();
             }
         };
           
         gridView.setAdapter(adapter);
     }
       
       
     private  void  loadapp()
     {
         Intent intent =  new  Intent(Intent.ACTION_MAIN, null );
         intent.addCategory(Intent.CATEGORY_LAUNCHER);
         mApps = getPackageManager().queryIntentActivities(intent,  0 );
     }
       
     @Override
     public  boolean  onCreateOptionsMenu(Menu menu)
     {
         getMenuInflater().inflate(R.menu.main, menu);
         return  true ;
     }
       
}




本文转自 glblong 51CTO博客,原文链接:http://blog.51cto.com/glblong/1218512,如需转载请自行联系原作者
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值