package com.qqz.exploreractivity;import java.util.List;import android.app.Activity;
import android.content.Context;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.view.WindowManager;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.TextView;public class showAppExplorerActivity extends Activity {
    /** Called when the activity is first created. */

private GridView gv_explorer;

private final static String TAG = "DBHelper";
    
private List<PackageInfo> packageInfos;

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
        packageInfos = getPackageManager().getInstalledPackages(0);
        setContentView(R.layout.show_explorer_grid);
        gv_explorer = (GridView) this.findViewById(R.id.gv_explorer);
        gv_explorer.setAdapter(new AppItmeAdapter(this));
    }
    class AppItmeAdapter extends BaseAdapter
    {
       
       //构造方法
       public AppItmeAdapter(Context context )
       {
       
     LayoutInflater   inflater = LayoutInflater.from(context);
       } @Override
public int getCount()
{
// TODO Auto-generated method stub
return packageInfos.size();
} @Override
public Object getItem(int position)
{
// TODO Auto-generated method stub
return (PackageInfo)packageInfos.get(position);
} @Override
public long getItemId(int position)
{
// TODO Auto-generated method stub
return position;
} @Override
public View getView(int position, View convertView, ViewGroup parent)
{
// TODO Auto-generated method stub

View view =inflater.inflate(R.layout.app_item, null);
ImageView app_image = (ImageView) findViewById(R.id.app_image);
TextView  app_name = (TextView) findViewById(R.id.app_name);

System.out.println(packageInfos.get(position)+"软件的名称");
System.out.println(position+"软件的位置");
System.out.println(packageInfos.get(position).applicationInfo.loadLabel(getPackageManager()).toString());
System.out.println("*********华丽的分割线*************");
      app_name.setText(packageInfos.get(position).applicationInfo.loadLabel(getPackageManager()).toString());
app_image.setImageDrawable(packageInfos.get(position).applicationInfo.loadIcon(getPackageManager())); return view;
}
    
    }
}

解决方案 »

  1.   

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="90px"
        android:layout_height="wrap_content"
        android:gravity="center"
        >
        
       <ImageView 
          android:id="@+id/app_image"
          android:layout_width="64px"
          android:layout_height="64px"
        />
       
       <TextView 
          android:id="@+id/app_name"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:lines="2"
          android:textSize="16px"
          android:textColor="#FF6699"
        />
    </LinearLayout>
    布局如下,packageInfos.get(position).applicationInfo.loadLabel(getPackageManager()).toString()能输出来,就是在进行set方法的时候报错