2015-12-29 6 views
0

Я создаю приложение для Android, которое позволяет пользователю создавать разные списки друзей. Для каждого списка, элементы имеют имя и 2 параметра ...Каков наиболее эффективный способ сохранения списков?

Примера

Список 1: (Steve, Param 1, 2 пары), (Лиза, пары 1, 2 пар) .. и т.п..

Список 2: (Джон, пары 1, 2 пар), (Steve, пары 1, 2 пар) ... и т.д. ...

Каков наилучший способ динамически сохраняющийся все эти списки, созданные пользователем?

Я думал об использовании SQLite, поскольку его довольно легко реализовать.

я, хотя о работе с простыми JSON файлами, но такой подход казался слишком много ресурсов, потребляя, так как приложение работает с добавлением, чтения, изменения вещей ...

Итак, что это лучший способ сохраняющегося этими объекты?

Если я использую базу данных, я думал, что она должна иметь следующую схему:

Persons - столбцы: person_id, PERSON_NAME

СПИСКИ - столбцы: список

Для СПИСКИ, каждая строка только что сформирована каким-то набором наборов, представляющих один список.

Пример

Строка 1: [(person_id, param1, param2), (person_id, param1, param2), ...]

Где Строка 1 представляет собой один список со всеми людьми содержащихся в нем.

К сожалению, это не кажется очень эффективным ....

Я также думал о создании дополнительной таблицы

LIST_ROW - столбцы: row_id, person_id, param1, param2

и то каждая строка таблицы LISTS будет всего лишь кортежем идентификаторов для всех строк, принадлежащих этому списку ...

ПРИМЕР

Row 1 просто стали: (row_id, ROW_ID ....), представляющие элементы в списке 1.

К сожалению, я не уверен в том, как эффективнее это.

Может ли кто-нибудь сказать мне, что является лучшим способом достижения этого?

+1

Вы можете сохранить их в совместном использовании также –

+0

@VivekMishra Да, да. –

+0

@VivekMishra вы можете расширить это? – OHHH

ответ

0

Для этого вы можете использовать общие настройки. Преобразуйте список в String (объекты и значения, разделенные запятыми), затем добавьте это общие предварительные условия. Таким же образом вы можете получить это и преобразовать в свой список.

0

, если данные не настолько велики, вы не можете сохранить их в sharedpreference, , например: сначала определить компонент данных, второй добавить компонент данных в ArrayList , а затем сохранить зр:

saveObject("list_one", list); 



/** 
* Save object to SharedPreferences 
* 
* @param key 
* @param obj 
*/ 
protected void saveObject(String key, Object obj) { 
    try { 
     ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
     ObjectOutputStream oos = new ObjectOutputStream(baos); 
     oos.writeObject(obj); 
     String str = Base64.encodeToString(baos.toByteArray(), Base64.DEFAULT); 
     SharedPreferences.Editor editor = sp.edit(); 
     editor.putString(key, str); 
     editor.commit(); 
    } catch (IOException e) { 
     e.toString(); 
    } 
} 

/** 
* Read object from SharedPreferences 
* 
* @param key 
* @return object 
*/ 
protected Object getObject(String key) { 
    try { 
     String str = sp.getString(key, ""); 
     ByteArrayInputStream baim = new ByteArrayInputStream(Base64.decode(str, Base64.DEFAULT)); 
     ObjectInputStream ois = new ObjectInputStream(baim); 
     return ois.readObject(); 
    } catch (Exception e) { 
    } 
    return null; 
} 
Смежные вопросы