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

Reply via email to