2012-04-27 3 views
0

мне нужна помощь по конкретной задаче:Отображаемый элемент по щелчку на ListView

У меня есть в моей основной деятельности в ListView с пользовательской Adapter связанной, и OnItemLongClick слушатель, который отображает Dialog со многими операциями, сконфигурированных (количество изменений , отменить элемент ...), и он работает как шарм.

Моя цель состоит в том, чтобы иметь физическую копию щелкнутого элемента в Dialog, чтобы немедленно отобразить сделанные изменения.

Поскольку мой ListView элемент является сложным и разработан Adapter, я не могу просто получить ссылку на исходный объект, мне нужно визуально копию выбранного элемента ListView ...

Я думал о создании такая же структура (ListView и Adapter) только с выбранным товаром, но это своего рода тяжелый ...

Есть ли более простое решение, которое может мне помочь в этой ситуации? Я имею в виду реальную копию оригинального элемента ListView с изменениями, внесенными в мой Dialog, выполненным с оригинальным объектом ...

+1

плз разработать 'физическую копию щелкнули item' .... – waqaslam

+0

что физическая копия товара? никогда не слышал о :) – Zoombie

+0

Я имел в виду копию, напоминающую и ссылающуюся на тот же источник объекта. – Darkendorf

ответ

1

Проводка вашего релевантного кода может помочь нам более четко прояснить ситуацию.

Однако вы можете получить объект в onItemLongClick((AdapterView, View, int position, long) с помощью position PARAMS т.е.

YourObject objReference = yourActivityClassObjectList.get(position); 

Теперь при показе диалога, передайте это objReference в ваш диалог, и когда изменения, внесенные, изменить содержимое этого objReference и вызвать

adapter.notifyDataSetChanged(); 

вместо передачи objReference в диалоговом окне вы можете пройти int position, а при внесенных изменениях получить ссылку на этот объект, chan ge и уведомлять набор данных, измененный на Adapter.

+0

спасибо. Я объединил свои мысли с подсказкой и закончил с новым адаптером в новом ListView внутри моего диалога, отображающим копию объекта И ссылку на исходный адаптер, чтобы использовать процедуры на исходном адаптере, а затем я использую adapter.notifyDataSetChanged (); на обоих адаптерах, и все работает так, как я хотел! – Darkendorf

1

Когда вы нажмете на один элемент списка, необходимо активировать обратный вызов onListItemClick. Как вы видите в документе, третий параметр - position. Вы можете позвонить YourAdapter.getItem(int) в retrive трюм элементов посредством listview на position

+0

спасибо, что я сейчас делаю. см. мой ответ на Адил – Darkendorf

Смежные вопросы