Thank you so much. After looking at this again it was painfully obvious where my mistake was. Thanks again, it works.
Kent On Sep 25, 9:17 pm, Kostya Vasilyev <kmans...@gmail.com> wrote: > You need to make some changes to getView. Move the code to set values within > the views after the "if convertView" statement. > > What's happening is, the views get recycled and reused for a different item, > but you don't set any values in that code path. > > -- > Kostya Vasilyev --http://kmansoft.wordpress.com > > 26.09.2010 5:00 пользователь "CMWiii" <kentka...@gmail.com> написал: > > Hi, > Having a problem with an image adapter. What I am trying to do is > get a list > of all the installed apps on my phone, display their icons and name, > all in a grid > with 4 columns. > > On first look all seems well but I see duplicates in apparently > random locations > and when I scroll back to the beginning the content of the rows has > changed! I cannot > ascertain any specific pattern. Either whole rows have moved, or > the order of a > specific row has changed, or there are single duplicates on the > screen. > > Here is the XML and code: > > layout_main.xml > > <?xml version="1.0" encoding="utf-8"?> > > <LinearLayout xmlns:android="http://schemas.android.com/apk/res/ > android" > android:layout_width="wrap_content" > android:gravity="center_vertical" > android:layout_height="fill_parent"> > > <GridView android:id="@+id/GridView" > android:layout_width="wrap_content" > android:layout_height="fill_parent" > android:numColumns="4"> > </GridView> > > </LinearLayout> > > layout_row.xml > > <LinearLayout xmlns:android="http://schemas.android.com/apk/res/ > android" > android:id="@+id/main_layout" > android:layout_width="fill_parent" > android:layout_height="wrap_content" > android:orientation="vertical"> > > <ImageView android:id="@+id/icon_image" android:layout_width="40dp" > android:layout_marginLeft="20dp" > android:paddingLeft="1px" > android:gravity="right" > android:layout_height="40dp"> > </ImageView> > > <TextView android:id="@+id/icon_text" android:layout_width="78dp" > android:layout_marginBottom="5dp" > android:layout_height="32dp" android:text="TextView" > android:gravity="center|top" > android:textColorHighlight="#ffffff"> > </TextView> > </LinearLayout> > > Code > > @Override > public void onCreate(Bundle savedInstanceState) { > super.onCreate(savedInstanceState); > > mPackageManager = getPackageManager(); > > setContentView(R.layout.layout_main); > > List<PackageInfo> installedPackages = > mPackageManager.getInstalledPackages(0); > > grid = (GridView) findViewById(R.id.GridView); > grid.setAdapter(new ImageAdapter(mainActivity.this, > installedPackages, installedPackages.size())); > } > > public class ImageAdapter extends BaseAdapter { > Context context; > List<PackageInfo> list; > int maxsize; > > public ImageAdapter(Context argContext, List<PackageInfo> > argPackageInfo, int argMaxsize) { > context = argContext; > list = argPackageInfo; > maxsize = argMaxsize; > } > > �...@override > public int getCount() { > return maxsize; > } > > �...@override > public View getView(final int position, View convertView, ViewGroup > parent) { > View view; > > try { > if (convertView == null) { > LayoutInflater inflater = > getLayoutInflater(); > view = inflater.inflate(R.layout.layout_row, > null); > > TextView textview = (TextView) > view.findViewById(R.id.icon_text); > textview.setTextSize(13f); > textview.setTextColor(0xffffffff); > > textview.setText(mPackageManager.getApplicationLabel(list.get(position).applicationInfo)); > > ImageView imageview = (ImageView) > view.findViewById(R.id.icon_image); > > imageview.setScaleType(ImageView.ScaleType.FIT_CENTER); > > imageview.setImageDrawable(mPackageManager.getApplicationIcon((list.get(position).applicationInfo))); > > } else { > > view = convertView; > } > > return view; > > } catch (Exception e) { > } > > return view = convertView; > } > > �...@override > public Object getItem(int position) { > return position; > } > > //@Override > public long getItemId(int position) { > return position; > } > > } > > Any ideas or thoughts would be appreciated. > > Kent > > -- > You received this message because you are subscribed to the Google > Groups "Android Developers" group. > To post to this group, send email to android-developers@googlegroups.com > To unsubscribe from this group, send email to > android-developers+unsubscr...@googlegroups.com<android-developers%2bunsubscr...@googlegroups.com> > For more options, visit this group > athttp://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en