web_dev
@web_dev

Editable items в ListView?

Здравствуйте,


есть ListView забит текстом(по строке в item), хочется чтоб при клике на item поле можно будет редактировать и сбоку два маленьких значка, подтвердить или отменить.


Мне кажется это должно быть стандартное API. только не знаю как сделать.


И еще вопрос например как мне сделать, чтоб можно было выделять несколько item или есть кнопочка — выделить все. Тоже должно быть стандартное API.


Или подскажите где глянуть как сие делать.


Спасибо!
  • Вопрос задан
  • 3875 просмотров
Пригласить эксперта
Ответы на вопрос 4
@dikkini
Если что-то не очевидно как сделать или стандартной компоновкой элементов этого добиться нельзя (или не устраивает скорость и т.п.), то лучше написать кастомный элемент с нужным функционалом.
Ответ написан
senneco
@senneco
По поводу выделения элементов списка есть такая статья(на русском) startandroid.ru/ru/uroki/vse-uroki-spiskom/83-urok-43-odinochnyj-i-mnozhestvennyj-vybor-v-list.html. Может быть вам поможет.

А по поводу изменения данных прям в списке — если вы собираетесь переиспользовать вьюшку, приходящую в метод getView, вам необходимо в адаптере помнить позицию редактируемого элемента и в getView проверять, она ли это, или нет. И просто выдавать соответственную вьюшку.
Ответ написан
senneco
@senneco
Moved…
Ответ написан
Комментировать
по поводу редактирования элементов — как то-так:
public void onItemClick(AdapterView list, View v, int position, long id) {
    TextView text_view = (TextView) v.findViewById(R.id.item_text_view);
    String text = text_view.getText();
    v.removeView(text_view);

    LayoutInflater li = getLayoutInflater(this);
    View editable_view = li.inflate(R.layout.editable_item, null);
    editable_view.findViewById(R.id.editable_edit_text).setText(text);
    v.addView(editable_view);
}

при этом корневой элемент в разметке item'a должен быть ...Layout
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы