Редактируеми елементи в ListView?


има ListView, натъпкан с текст (един ред на елемент), искам, когато щракнете върху елемента, полето да може да се редактира и две малки икони отстрани, да се потвърди или отмени.


Мисля, че това трябва да е стандартният API. просто не знам как да го направя.


И още един въпрос, например, как мога да го направя, за да мога да избера няколко елемента или има бутон - изберете всичко. Трябва да има и стандартен API.


Или ми кажете къде да търся как да направя това.

И относно промяната на данните точно в списъка - ако ще използвате повторно изгледа, който идва към метода getView, трябва да запомните позицията на редактирания елемент в адаптера и да проверите в getView дали е или не. И просто издайте подходящия изглед.

След това можете да направите адаптер по този начин:

И съответно добавете/премахнете позиция от списъка mEditPositions в необходимите лиснери. Надявам се да е ясно как работи =)

PS: ако някой не харесва кода и може да предложи по-добро решение - добре дошъл: D

Разбира се, всичко е ясно, но изглежда или не сте ме разбрали напълно, или аз ...
да започна:
- Изградих списък например с 10 елемента, всеки от тях има ред.
- направи едно щракване, изгледът се промени.

Във вашия код вие ми предлагате да разграничавам кой изглед ще трябва да бъде изграден, това е разбираемо, но!
как моят адаптер ще знае какво искам да редактирам в реално време, например 5 елемент.
Искам да кажа работа с ListView в реално време, а не в процес на изграждането му ...

за редактиране на елементи - нещо подобно:

основният елемент в маркирането на елемента трябва да бъде. Оформление

Лош съвет - ако направите това, след първото напускане на редактирания елемент от екрана целият ListView ще започне да танцува. Защото във вашия пример модифицираният View v ще бъде предаден за показване на друг елемент от списъка, но не е нужно. И в същото време, след връщане на тази позиция на екрана, може да се предаде друг изглед, за да се изчертае, и EditText ще изчезне.

Предефинирането на методите getItemViewType и getViewTypeCount ни позволява да не се притесняваме кой изглед ни идва - той ще се сбъдне или ще бъде нулев за метода getView .