Thx for the help. I was trying something like the code snippet below but it doesn't help... It seems that the TextView retrieved in the else case is always null, any ideas?
} else { Log.d(LOG_TAG, "No need for row to be created"); Log.d(LOG_TAG, "Finding the TextView for the label- name"); TextView textView = (TextView) row.findViewById(R.id.labelname); if(textView != null) { Log.d(LOG_TAG, "TextView for label-name found"); Log.d(LOG_TAG, "Setting the name of the label..."); textView.setText(label.getName()); ImageView deleteButton = (ImageView) row.findViewById(R.id.btn_delete); Log.d(LOG_TAG, "About to attach the onClickListener for deletion of the label"); deleteButton.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { deleteLabel(label, true); } }); } } On Feb 6, 5:45 pm, Kostya Vasilyev <kmans...@gmail.com> wrote: > Dirk, > > You have a bug in your getView() method. > > When a list item layout gets recycled (convertView != null), your code > correctly avoids re-inflating a new layout. However, since the item > layout is being recycled, it's also necessary to update its views with > values for the current item. > > Pseudo-code: > > getView() { > > if (convertView == null) { > inflate a view > > } > > /* Always execute below code, for both new and recycled item layouts */ > > YourDataItem item = get data item specified by "position" > > TextView view1.setText(item.name); > TextView view2.setText(item.address); > // etc > > } > > -- Kostya > > 06.02.2011 19:39, Dirk Vranckaert пишет: > > > > > > > > > > > Hi all, > > > I'm having an issue with the ListView in Android. > > > So I have an activity extending the ListActivity, in the activity I > > have an innerclass for my adapater. > > Now both on my device and the emulator some entries appear 2 or 3 > > times in the list (not always the same items) although the size of my > > List<Label> is always the same! > > > On the emulator I noticed that it's mostly related to the scrolling in > > the list... If I scroll down some entries are duplicate, if I scroll > > up and down again the entries have changed all over the list... > > > Is there anything in my code that you guys can see that is wrong? > > > Here's my code: > > > .... > > this.labels = labelService.findAll(); > > Collections.sort(this.labels, new LabelByNameComparator()); > > Log.d(LOG_TAG, labels.size() + " labels loaded!"); > > ManageLabelsListAdapter adapter = new > > ManageLabelsListAdapter(labels); > > adapter.notifyDataSetChanged(); > > setListAdapter(adapter); > > > /** > > * The list adapater private inner-class used to display the > > manage labels list. > > */ > > private class ManageLabelsListAdapter extends ArrayAdapter<Label> > > { > > private final String LOG_TAG = > > ManageLabelsListAdapter.class.getSimpleName(); > > /** > > * {@inheritDoc} > > */ > > public ManageLabelsListAdapter(List<Label> labels) { > > super(ManageLabelsActivity.this, > > R.layout.list_item_labels, labels); > > Log.d(LOG_TAG, "Creating the manage labels list > > adapater"); > > } > > > @Override > > public View getView(int position, View convertView, ViewGroup > > parent) { > > Log.d(LOG_TAG, "Getting view..."); > > View row = convertView; > > ManageLabelsListWrapper wrapper; > > > if(row == null) { > > Log.d(LOG_TAG, "Row needs to be created!"); > > final Label label = labels.get(position); > > Log.d(LOG_TAG, "Label at list position " + position + > > " retrieved from DB list: " + label); > > > LayoutInflater inflater = getLayoutInflater(); > > row = inflater.inflate(R.layout.list_item_labels, > > parent, false); > > Log.d(LOG_TAG, "Label row inflated into layout!"); > > wrapper = new ManageLabelsListWrapper(row); > > Log.d(LOG_TAG, "Row wrapped!"); > > > TextView labelName = wrapper.getLabelname_listitem(); > > Log.d(LOG_TAG, "About to update the name of the label > > in the view for TextView " + labelName + " with the value: " + > > label.getName()); > > labelName.setText(label.getName()); > > > ImageView deleteButton = wrapper.getBtn_delete(); > > deleteButton.setOnClickListener(new > > View.OnClickListener() { > > public void onClick(View view) { > > deleteLabel(label, true); > > } > > }); > > } > > > return row; > > } > > } > > -- > Kostya Vasilyev -- WiFi Manager + pretty widget > --http://kmansoft.wordpress.com -- 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