С Новым годом! Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
 Аватар для Worldmen
5 / 8 / 4
Регистрация: 31.08.2013
Сообщений: 350

При выводе ArrayList<T> выводит последние элементы

03.11.2015, 00:00. Показов 1293. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Класс Words:
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
public class Words {
    public int Id;
    public String WordEnglish;
    public String WordRussian;
    public String Transcription;
    public int Category;
}

Метод заполнения списка ArrayList<Words>:
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    public ArrayList<Words> GetAllWords(SQLiteDatabase db){
        ArrayList <Words> allWords = new ArrayList<>();
        Words w = new Words();
        Cursor cur = db.query(tabWords, null, null, null, null, null, null);
        while (cur.moveToNext()){
            w.Id = cur.getInt(cur.getColumnIndex("_id"));
            w.WordEnglish = cur.getString(cur.getColumnIndex("wordEng"));
            w.WordRussian = cur.getString( cur.getColumnIndex("wordRus"));
            w.Transcription = cur.getString( cur.getColumnIndex("transcript"));
            w.Category = cur.getInt(cur.getColumnIndex("category"));
 
            allWords.add( w );
        }
 
        cur.close();
        return allWords;
    }

Метод создания таблицы в активити (TableAllWords):
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
   public void TableAllWords(String eng, String rus, String trn){   
        TextView fEng = new TextView(getApplicationContext());
        fEng.setPadding(2, 1, 5, 0);    
        fEng.setText(eng);
 
        TextView fRus = new TextView(getApplicationContext());
        fRus.setPadding(2, 1, 5, 0);        
        fRus.setText(rus);
 
        TextView fTrn = new TextView(getApplicationContext());
        fTrn.setPadding(2, 1, 5, 0);        
        fTrn.setText(trn);
 
        TableRow row = new TableRow(getApplicationContext());
        row.addView(fEng);  
        row.addView(fRus);  
        row.addView(fTrn);  
 
        tableWords.addView(row);
    }

Так заполняю таблицу:
Java
1
2
3
4
ArrayList<Words> w = dbHelper.GetAllWords(db);
for(Words item : w){
      TableAllWords(item.WordEnglish,item.WordRussian,item.Transcription);
}
В базе данных в таблице у меня 7 записей, в таблице формы андроида выводит 7 раз последнюю запись.
Почему?
И если так выводить, то же самое получается:
Java
1
2
3
for (int i = 0; i<w.size();i++){
    TableAllWords(w.get(i).WordEnglish,w.get(i).WordRussian,w.get(i).Transcription);
 }
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.11.2015, 00:00
Ответы с готовыми решениями:

При выводе данных из DataSet в Excel не выводятся последние 3 записи
Здравствуйте! Я понимаю, что вопрос избитый. Но вижу без вашей помощи проблему решить не смогу. Несколько дней поиска подобной проблемы...

При выводе числа с плавающей запятой теряются последние цифры
Доброго времени суток! Мне дано число 0,1025390625. double отрезает конец и выводит 0.102539. Как мне сохранить это число целиком и...

При выводе на печать полученной строки некорректно отображаются последние символы
Написал функция, боюсь не самую изящную, но не в этом дело. Суть функции: получает массив, содержащий число, преобразует число к виду...

3
266 / 242 / 96
Регистрация: 11.01.2015
Сообщений: 673
03.11.2015, 00:26
Worldmen, попробуй так написать метод getAllWords

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public ArrayList<Words> getAllWords(SQLiteDatabase db){
        ArrayList <Words> allWords = new ArrayList<>();
        Words w = new Words();
        Cursor c = db.query(tabWords, null, null, null, null, null, null);
        
        if (c != null) {
            if (c.moveToFirst()) {
                do {
                     w.Id = c.getInt(c.getColumnIndex("_id"));
                     w.WordEnglish = c.getString(c.getColumnIndex("wordEng"));
                     w.WordRussian = c.getString( c.getColumnIndex("wordRus"));
                     w.Transcription = c.getString( c.getColumnIndex("transcript"));
                     w.Category = c.getInt(c.getColumnIndex("category"));
          
                     allWords.add( w );
                } while (c.moveToNext());
            }
        }
 
        c.close();
        return allWords;
    }
0
 Аватар для YuraAAA
1605 / 1337 / 291
Регистрация: 25.10.2009
Сообщений: 3,487
Записей в блоге: 2
03.11.2015, 10:54
Лучший ответ Сообщение было отмечено Worldmen как решение

Решение

Mikalai, Вы чуть ошиблись. В цикле надо каждый раз создавать
Java
1
w = new Words();
иначе будет одна и та же ссылка лежать в ArrayList
2
03.11.2015, 11:58

Не по теме:

YuraAAA, согласен. Недочёт. Спишем это на позднее время )))

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.11.2015, 11:58
Помогаю со студенческими работами здесь

При выводе массива, выводит мусор
Програмка генератор паролей! #include&lt;iostream&gt; #include&lt;time.h&gt; #include&lt;conio.h&gt; using namespace std; void...

При добавлении студента, сбивается вся структура, и при выводе всего списка студентов, выводит какой то мусор
Суть действий: При добавлении студента, сбивается вся структура, и при выводе всего списка студентов, выводит какой то мусор. Раньше я...

При выводе на консоль, Write() не выводит то, что в кавычках
Всем привет! Только начал изучать с# Создаю класс но при выводе на консоль write не выводит то что в кавычках? using System; ...

При выводе данных из файла в строке не выводит до пробела
В поле &quot;номерной знак&quot; выводит только то что после пробела struct UchetAuto { char marka; //Марка автомобиля int year;//год...

Не корректно выводит номер в Кассовых документах при выводе на печать
Здраствуйте. В общем вопрос наверное глупый, ну чет пока не въехал. 1С Предприятие 8.1 --&gt; Касса --&gt; Кассовые документы . Там...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru