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

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

Войти
Регистрация
Восстановить пароль
 
Rm1
0 / 0 / 0
Регистрация: 15.02.2015
Сообщений: 11
#1

Запись данных с использованием массива - Программирование Android

10.07.2015, 10:56. Просмотров 365. Ответов 1
Метки нет (Все метки)

Всем привет! Столкнулся с некорректной записью данных в файл и не могу додуматься, как решить проблему. Суть в следующем: из сети загружаются числовые значения (всего около 300). Для примера, 543, 734, 124, 452, 935 и так далее. Предположим, последнее число в этом списке 456. Затем эти значения присваиваются переменным Pl. Делаю это так:

Java
1
2
3
4
5
6
private String pl[] = new String[301];                                
private int Pl[] = new int[301];
 
for (int i = 1; i < 301; i++)
{pl[i] = ratingStr.substring(ratingStr.lastIndexOf("Numbers")+4+i*4, ratingStr.lastIndexOf("Numbers")+4+i*4);
Pl[i] = Integer.parseInt(pl[i]);}
После мне нужно запомнить эти значения переменных, чтобы при следующем запуске приложения не надо было заново их скачивать. Делаю так:

Java
1
2
3
4
5
6
7
8
9
private SharedPreferences sPpl[] = new SharedPreferences[301];
private String Spl[] = new String[301];
private String spl[] = new String[301];
private Editor edpl[] = new Editor [301];
 
sPpl[i] = gameContext.getSharedPreferences("Data", Context.MODE_PRIVATE);
edpl[i] = sPpl[i].edit();
edpl[i].putString(Spl[i], pl[i].toString());
edpl[i].commit();
Файл "Data" создается, но при этом в нем всего одна запись - последнего в списке числа (в примере - 456). Причем без каких-либо атрибутов (должно быть, если не ошибаюсь, Spl300=456). Мне надо, чтобы в файл попали все 300 чисел. Если прописать для каждой переменной код, как выше, то все получается. Но это куча лишних строк...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.07.2015, 10:56
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Запись данных с использованием массива (Программирование Android):

Передача данных с использованием Intent - Программирование Android
Добрый день! Не получается перенести текст введённый с одного активити в другой. Код первого активити: Intent intent = new...

Структура данных с использованием SQLite - Программирование Android
Всем привет. Подскажите каким образом лучше построить работу с данными в приложении. Есть база данных, в ней сейчас одна таблица: ROP...

Запись данных в 2 таблицы SQLite - Программирование Android
Как заполнять данные в базу данных при двух таблицах? Получается лишь в одну таблицу занести данные. А как их заносить в другую?. Есть...

Запись массива в TextView - Программирование Android
Есть двумерный массив: int a в нём записаны &quot;0&quot; и &quot;1&quot; Я хочу вывести его на экран, но выводится только один &quot;0&quot;. ... TextView...

Чтение и запись данных в локальную БД SQLite - Программирование Android
Есть вот такой класс для работы локальной работы с БД. package com.tanatix.checkinternetresourceschanges; import...

Подскажите лучший способ хранения данных, чтение/запись файлов - Программирование Android
Добрый день. Пишу тренажер для обучению слов (англ-рус). Слова хранятся в файле .txt в виде &quot;arrow | стрела \n...&quot; Мне необходимо хранить...

1
Pablito
2505 / 1989 / 619
Регистрация: 12.05.2014
Сообщений: 6,943
Завершенные тесты: 1
10.07.2015, 11:24 #2
массив Editor и SharedPreferences ??? ну и ну
программируешь наугад?

я правильно понял - надо записать и считать массив объектов типа Integer ?

Добавлено через 20 минут
где-то в активити создаем два метода
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    private String arrayToString(int[] arr) {
        StringBuilder sb = new StringBuilder();
        for (Integer i: arr) {
            sb.append(i.toString()).append(" ");
        }
        return sb.toString().trim();
    }
 
    private int[] stringToArray(String str) {
        String[] strings = str.split(" ");
        int[] arr = new int[strings.length];
        for (int i = 0; i < arr.length; i++) {
            arr[i] = Integer.valueOf(strings[i]);
        }
        return arr;
    }
сохраняем массив в виде строки
Java
1
2
3
        SharedPreferences settings = getSharedPreferences("Data", Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = settings.edit();
        editor.putString("myLolArray", arrayToString(arr)).apply();
читаем массив из preferences
Java
1
2
SharedPreferences settings = getSharedPreferences("Data", Context.MODE_PRIVATE)
int[] myIntArray = stringToArray(settings.getString("myLolArray", ""));
2
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.07.2015, 11:24
Привет! Вот еще темы с ответами:

Запись данных в базу данных mdb с использованием DataAdapter и DataSet - C#
Попробовал сделать Update для таблицы контактов: private void Form1_Load(object sender, EventArgs e) { OleDbConnection...

Программу с использованием файлов и данных типа запись - Delphi
Написать программу с использованием файлов и данных типа запись. Ведомость абитуриентов, сдавших вступительные экзамены в университет,...

Запись даты в базу данных c использованием php - PHP БД
Нужно записать текущую дату в базу данных. Поле Дата имеет тип Date. Использую postgresql. В php дату узнаю следующим образом: ...

Удалить запись из базы данных с использованием Entity Framework - C#
Я использую Entity Framework. Я хотел бы удалить запись основанную на primary key, но я не хочу обращаться к базе данных перед удалением...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

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