Учитывая элемент, который отображается в ListView,
Могу ли я использовать его адаптер (или сам ListView), чтобы найти представление, которое отображает элемент?
Я обрабатываю сохранение данных элемента и должен передать изменение обратно в ListView. Добавление элемента заставляет его отображаться с помощью notifyDataSetChanged(), но измененные элементы не перерисовываются с помощью notifyDataSetChanged()
Вот код моей активности, который редактирует элемент:
@Override
public void onClick(View button) {
EditText text = (EditText)(findViewById(R.id.itemText));
if (item == null) {
// Add - this path updates ListView
ItemsAdapter.instance().items.add(new Item(text.getText().toString()));
} else {
// Save - this path does not update ListView
this.item.setTitle(text.getText().toString());
}
ItemsAdapter.instance().notifyDataSetChanged();
this.finish(); // Close activity
}
Соответствующие части моего адаптера:
public class ItemsAdapter extends BaseAdapter {
ArrayList<Item> items = new ArrayList<Item>();
@Override
public int getCount() {
return items.size();
}
@Override
public Object getItem(int position) {
return items.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Item item = (Item)getItem(position);
// ItemTextView is a subclass of TextView which keeps a reference to the item
// So that in my OnClickListener, I can get the underlying Item and edit it
ItemTextView textView = null;
if (convertView == null) {
textView = new ItemTextView(context, item);
// Associate with itemListener which opens edit activity for item
textView.setOnClickListener(itemListener);
textView.setTextSize(16);
textView.setPadding(5, 5, 5, 5);
} else {
textView = (ItemTextView) convertView;
textView.setItem(item);
}
return textView;
}
}
А класс Item — это POJO, который реализует Parcelable.
Заранее спасибо
Джефф
notifyDataSetChanged
должен инициировать ListView для повторного заполнения содержимого списка, отражающего измененные элементы. - person adamp   schedule 02.03.2011