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

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

Войти
Регистрация
Восстановить пароль
 
Worldmen
2 / 2 / 1
Регистрация: 31.08.2013
Сообщений: 204
Завершенные тесты: 1
#1

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

03.11.2015, 00:00. Просмотров 222. Ответов 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)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.11.2015, 00:00
Здравствуйте! Я подобрал для вас темы с ответами на вопрос При выводе ArrayList<T> выводит последние элементы (Программирование Android):

Как поместить в preferences arrayList типа: arraylist<Class> - Программирование Android
Как поместить в preferences arrayList типа: arraylist&lt;Class&gt; Class содержит вид: public class CountryClass { private String...

Ошибка при заполнении ArrayList из массива - Программирование Android
Добрый Товарищи! делаю так: // создаем адаптер fillData(MainActivity.MassiveSections/*это String массив*/); ...

Задержка при выводе картинки в button? - Программирование Android
Задержка при выводе картинки в button, не получается... Цикл выводит, 5 картинок в button. пробовал thread.sleep(1000); не...

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

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

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

3
Mikalai
256 / 232 / 94
Регистрация: 11.01.2015
Сообщений: 656
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
YuraAAA
1576 / 1317 / 271
Регистрация: 25.10.2009
Сообщений: 3,438
Записей в блоге: 2
03.11.2015, 10:54 #3
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Mikalai, Вы чуть ошиблись. В цикле надо каждый раз создавать
Java
1
w = new Words();
иначе будет одна и та же ссылка лежать в ArrayList
2
Mikalai
03.11.2015, 11:58     При выводе ArrayList<T> выводит последние элементы
  #4

Не по теме:

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

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.11.2015, 11:58
Привет! Вот еще темы с ответами:

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

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

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

При повторном выводе данных в RichMemo выводит не все! Почему? - Lazarus
Ввожу данные в поля Edit формы 1. Нажимаю кнопку вычислить. Получаю результат расчета. Нажимаю кнопку вывести данные в RichMemo и туда...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
03.11.2015, 11:58
Ответ Создать тему
Опции темы

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