public class VpackageManager extends ListActivity implements OnScrollListener{ private List<PackageInfo> apkInfos;
private static ArrayList<SimpleInfo> infos;
private PackageAdpater adapter;
private static TextView textview;
private ImageView imgline;
private CloseClientReceiver closeClientReceiver;
private PkgInstallReceiver pkgInstallReceiver;
private AppStatusReceiver appStatusReceiver;
boolean isSys = false;
// 分页加载的数据的数量
private int pageSize = 5;
private int pageIndex = 0;

ListView listview;
static String packageName;
static PackageInfo apk;
ApplicationInfo appInfo;
private static PackageManager pm;

private ArrayList<SimpleInfo> info;
private boolean flag = true;//是否显示更多
private View view; private TextView moreTextView;
// 正在加载进度条
private LinearLayout loadProgressBar;
private void getInfos() {
System.out.println("is not exceute ");
for (int i = pageIndex*pageSize; i < (pageIndex+1)*pageSize; i++) {
if (i>infos.size()-1) {

flag = false;
break;
}else{
if (i==infos.size()-1) {
flag = false;
}
info.add(infos.get(i));
}

}
System.out.println("106--------"+infos.size());

} @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
VActivityStackControlUtil.add(this);
setContentView(R.layout.manage);
textview = (TextView) findViewById(R.id.total);
imgline = (ImageView) findViewById(R.id.imageline);
infos = new ArrayList<PackageAdpater.SimpleInfo>();
info = new ArrayList<PackageAdpater.SimpleInfo>();
pm = getPackageManager();
apkInfos = pm.getInstalledPackages(0);
apkInfos = getLocal(apkInfos);
// infos = getInfos(apkInfos);
Log.e("", "-----apkInfos.size -------  " + apkInfos.size()); infos = getInfos(apkInfos);
System.out.println("----10----"+infos);

getInfos();
System.out.println("-----128--getinfos---");
listview = getListView();
addPageMore();

        adapter = new PackageAdpater(VpackageManager.this, info); setListAdapter(adapter);
}
private List<PackageInfo> getLocal(List<PackageInfo> apkInfos2) {
PackageInfo apk;
List<PackageInfo> apkInfos1= new ArrayList<PackageInfo>();
for (int i = 0; i < apkInfos2.size(); i++) {
apk = apkInfos2.get(i);
ApplicationInfo appInfo = apk.applicationInfo;
if ((appInfo.flags & ApplicationInfo.FLAG_SYSTEM) > 0) {

}else {
apkInfos1.add(apk);
} }
Log.e("","----getLocal------ apkInfos1.size = " + apkInfos1.size()); return apkInfos1; } public static int page = 1; public ArrayList<SimpleInfo> getInfos(List<PackageInfo> apkInfos) {
for (int i = 0; i < apkInfos.size();) {
if (apkInfos == null)
return null;
if (infos == null)
infos = new ArrayList<SimpleInfo>();
String name;
Drawable icon;
String gversion;
String vsize;
apk = apkInfos.get(i);
appInfo = apk.applicationInfo; String dir = apk.applicationInfo.publicSourceDir;
float size = (float) new File(dir).length();
float size1 = size / 1024 / 1024;
float size2 = (float) (Math.round(size1 * 100)) / 100;
textview.setGravity(Gravity.CENTER_VERTICAL);
          i++;
infos.add(new SimpleInfo(icon, name, gversion, packageName, vsize));
}
return infos;
} private static final String CAT_ID = "8"; SimpleInfo sim; protected void onListItemClick(ListView l, View v, int position, long id) {
if (position < info.size()) {
sim = (SimpleInfo) info.get(position);
AppDetailActivity.appName = sim.name;
ActionController.appDetail(this, sim.packageName, CAT_ID);
}
} private void addPageMore() {
view = LayoutInflater.from(this).inflate(
R.layout.list_page_load, null);
moreTextView = (TextView) view.findViewById(R.id.more_id);
loadProgressBar = (LinearLayout) view.findViewById(R.id.load_id);
listview.addFooterView(view);

}
int lastItem;
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
// TODO Auto-generated method stub
System.out.println("onScroll---------");
lastItem=firstVisibleItem+visibleItemCount-1;
System.out.println("------lastItem----------"+lastItem);
} @Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
// TODO Auto-generated method stub
System.out.println("onScrollchanged---------");
  if (lastItem == infos.size() && scrollState == OnScrollListener.SCROLL_STATE_IDLE)
  {
  pageIndex++;
  getInfos();

System.out.println("onScrollchanged-getInfos is excute-------");
  }
}
}