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

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

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

Author24 — интернет-сервис помощи студентам
Класс 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. Как...

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

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

3
266 / 242 / 96
Регистрация: 11.01.2015
Сообщений: 673
03.11.2015, 00:26 2
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
1605 / 1337 / 291
Регистрация: 25.10.2009
Сообщений: 3,487
Записей в блоге: 2
03.11.2015, 10:54 3
Лучший ответ Сообщение было отмечено Worldmen как решение

Решение

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

Не по теме:

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

0
03.11.2015, 11:58
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.11.2015, 11:58
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Как проводить научные вычисления на Python
InfoMaster 15.01.2025
Python стал одним из наиболее востребованных языков программирования в области научных вычислений благодаря своей простоте, гибкости и обширной экосистеме специализированных библиотек. Научные. . .
Создание игры типа Minecraft на PyGame/Python: пошаговое руководство
InfoMaster 15.01.2025
В данном руководстве мы рассмотрим процесс создания игры в стиле Minecraft с использованием библиотеки PyGame на языке программирования Python. Этот проект идеально подходит как для начинающих. . .
Как создать свою первую игру в стиле Doom на Unreal Engine
InfoMaster 15.01.2025
Разработка шутера от первого лица в стиле классического Doom представляет собой увлекательное путешествие в мир игрового программирования, где сочетаются творческий подход и технические навыки. . . .
Параллельное программировани­е: основные технологии и принципы
InfoMaster 15.01.2025
Введение в параллельное программирование Параллельное программирование представляет собой фундаментальный подход к разработке программного обеспечения, который позволяет одновременно выполнять. . .
Как написать микросервис на C# с Kafka, MediatR, Redis и GitLab CI/CD
InfoMaster 15.01.2025
В современной разработке программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот подход позволяет разделить сложную систему. . .
Что такое CQRS и как это реализовать на C# с MediatR
InfoMaster 15.01.2025
Концепция CQRS и её роль в современной разработке В современном мире разработки программного обеспечения архитектурные паттерны играют ключевую роль в создании масштабируемых и поддерживаемых. . .
Как настроить CI/CD с Azure DevOps
InfoMaster 15.01.2025
CI/ CD, или непрерывная интеграция и непрерывное развертывание, представляет собой современный подход к разработке программного обеспечения, который позволяет автоматизировать и оптимизировать процесс. . .
Как настроить CI/CD с помощью Jenkins
InfoMaster 15.01.2025
Введение в CI/ CD и Jenkins В современной разработке программного обеспечения непрерывная интеграция (CI) и непрерывная доставка (CD) стали неотъемлемыми элементами процесса создания качественных. . .
Как написать микросервис на Go/Golang с Kafka, REST и GitHub CI/CD
InfoMaster 14.01.2025
Определение микросервиса, преимущества использования Go/ Golang Микросервис – это архитектурный подход к разработке программного обеспечения, при котором приложение состоит из небольших, независимо. . .
Как написать микросервис с нуля на C# с RabbitMQ, CQRS, Swagger и CI/CD
InfoMaster 14.01.2025
В современном мире разработки программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот архитектурный подход предполагает. . .
Как создать интернет-магазин на PHP и JavaScript
InfoMaster 14.01.2025
В современном мире электронная коммерция стала неотъемлемой частью бизнеса. Создание собственного интернет-магазина открывает широкие возможности для предпринимателей, позволяя достичь большей. . .
Как написать Тетрис на Ассемблере
InfoMaster 14.01.2025
Тетрис – одна из самых узнаваемых и популярных компьютерных игр, созданная в 1984 году советским программистом Алексеем Пажитновым. За прошедшие десятилетия она завоевала симпатии миллионы людей по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru