public void updateCharts(List<?> statsForApp) { Chart chart = new Chart(); int page = myAdapter.getCurrentPage(); int column = myAdapter.getCurrentColumn(); int position = -1; List<View> charts = new ArrayList<View>(); int pos = 0; for (int i = 0; i < myAdapter.getNumPages(); i++) for (int j = 1; j < myAdapter.getNumCharts(i); j++) { int pageColumn[] = new int[3]; View chartView = myAdapter.buildChart(getActivity(), chart, statsForApp, i, j); /* * if(chartView==null) { * Log.i(LOG_TAG,"Ignoring chart p="+i+" c="+j+"for class=" * +this.getClass().toString()); continue; } */ Gallery.LayoutParams params = new Gallery.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT); chartView.setLayoutParams(params); pageColumn[0] = i; pageColumn[1] = j; pageColumn[2] = myAdapter.getNumCharts(i); if (i == page && j == column) position = pos; pos++; chartView.setTag(pageColumn); charts.add(chartView); } chartGallery.setIgnoreLayoutCalls(false); chartGalleryAdapter.setViews(charts); if (position >= 0) chartGallery.setSelection(position); chartGalleryAdapter.notifyDataSetChanged(); chartGallery.invalidate(); }