Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Twi7ter
3 / 3 / 1
Регистрация: 27.03.2013
Сообщений: 147
#1

Обращение к каждому элементу Адаптера - Android

30.07.2014, 18:09. Просмотров 488. Ответов 5
Метки нет (Все метки)

мне неужно обратиться к каждому элементу адаптера и изменить там TextView,но почему то изменяется только 1й элемент,какой бы номер позиции там не стоял ,подскажите в чем дело?
Java
1
2
3
4
5
for(int i=0;i<sAdapter.getCount();i++)
{
TextView v = (TextView) sAdapter.getView(i, findViewById(R.id.tvFileName), null);
v.SetText(String.valueOf(i);
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.07.2014, 18:09     Обращение к каждому элементу Адаптера
Посмотрите здесь:

Android XML данные для адаптера
Android popUp из кастом адаптера
Обращение к View-элементу в GridLayout Android
Обработка нажатий внутри класса адаптера Android
Перемешать элементы массива и выдать (задать) описание к каждому элементу Android
Обновление данных адаптера Android
Android Обращение к элементу другой формы
Неадекватное поведение адаптера ListView Android
Обновление адаптера на неактивной активити Android
Android Достать массив из динамически созданного адаптера)
Android Создание адаптера
Вывод информации в Toast c Адаптера Android

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,070
30.07.2014, 18:22     Обращение к каждому элементу Адаптера #2
А где этот метод стоит? А где сеттер?
Twi7ter
3 / 3 / 1
Регистрация: 27.03.2013
Сообщений: 147
30.07.2014, 19:13  [ТС]     Обращение к каждому элементу Адаптера #3
getView это стандартный метод адаптера,сеттер до данного кода установлен,мне просто нужно понять как получить по очереди все элементы в адаптере,так как я привел,не работает
YuraAAA
1564 / 1306 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
30.07.2014, 21:26     Обращение к каждому элементу Адаптера #4
Twi7ter, обойти всю коллекцию, которую Вы используете в адаптере, изменить данные, вызвать notifyOnDataSetChanged();

Цитата Сообщение от Twi7ter Посмотреть сообщение
TextView v = (TextView) sAdapter.getView(i, findViewById(R.id.tvFileName), null);
а это вообще что-то странное
Twi7ter
3 / 3 / 1
Регистрация: 27.03.2013
Сообщений: 147
30.07.2014, 23:03  [ТС]     Обращение к каждому элементу Адаптера #5
YuraAAA, здесь я получаю текствью по номеру i,по идее должен был его вернуть но почему то возвращает всегда 1й элемент

Добавлено через 43 секунды
вот так я все это создаю
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
    data = new ArrayList<Map<String, Object>>();
            Map<String, Object> m;
 
            for (int i = 0; i < fileList.size(); i++) {
                m = new HashMap<String, Object>();
                m.put(ATTRIBUTE_NAME_FILE, fileList.get(i));
                m.put(ATTRIBUTE_NAME_DATE, DateValue.get(i));
 
                data.add(m);
 
            }
 
            // массив имен атрибутов, из которых будут читаться данные
            String[] from = { ATTRIBUTE_NAME_FILE, ATTRIBUTE_NAME_DATE, };
            // массив ID View-компонентов, в которые будут вставлять данные
            int[] to = { R.id.tvFileName, R.id.tvDate };
            // создаем адаптер
            sAdapter = new SimpleAdapter(this, data, R.layout.item, from, to);
 
            // определяем список и присваиваем ему адаптер
            notesList = (ListView) findViewById(R.id.notesList);
            notesList.setAdapter(sAdapter);
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,070
31.07.2014, 08:32     Обращение к каждому элементу Адаптера #6
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Я изменяю текст в ListView так:
Java
1
2
3
4
5
6
7
8
9
10
11
public class CustomAdapter extends BaseAdapter {
    private List<StringWrapper> data = new ArrayList<StringWrapper>();
    public StringWrapper getItem(int i) {
        return data.get(i);
    }
    public View getView(int i, View view, ViewGroup viewGroup) {  
        view = inflater.inflate(R.layout.row, null);    
        final StringWrapper currentItem = getItem(i);
        TextView.class.cast(view.findViewById(R.id.textView1)).setText(currentItem.getName());
        return view;
}}
Класс StringWrapper:
Java
1
2
3
4
5
6
7
8
9
public class StringWrapper {    
    private String mName;
    public StringWrapper(String mName) {
        this.mName = mName;
    }
    public String getName() {
        return mName;
    }
}
Yandex
Объявления
31.07.2014, 08:32     Обращение к каждому элементу Адаптера
Ответ Создать тему
Опции темы

Текущее время: 14:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru