Я создаю приложение, в котором пользователи могут создавать заметки, которые отображаются в сетке. Когда создается заметка, также создается соответствующий текстовый файл. Когда пользователь открывает приложение, оно считывает каталог файлов заметок, получает содержимое каждого файла заметок и затем отображает его в сетке.
Идея состоит в том, чтобы сделать сетку нот переставляемой с помощью перетаскивания.
Я никогда раньше ничего такого не делал,поэтому я изо всех сил пытаюсь разработать эффективный способ кэширования или запоминания порядка, в котором пользователь разместил заметки. Я думал о сохранении позиции каждой ноты в самом имени файла.
1_note3.txt
2_note7.txt
3_note4.txt
4_note2.txt
5_note6.txt
6_note8.txt
7_note5.txt
8_note1.txt
Это не похоже на хороший подход, так как всякий раз, когда заметки переставляются, мне приходится переименовывать кучу файлов. Например, скажем, пользователь создает новую заметку - которая будет вставлена как первый дочерний элемент сетки для удобства пользователя - все имена файлов должны быть переименованы.
1_note9.txt
2_note3.txt
3_note7.txt
4_note4.txt
5_note2.txt
6_note6.txt
7_note8.txt
8_note5.txt
9_note1.txt
Далее, скажем, пользователь теперь реорганизует заметки с помощьюперемещение первой ноты на четвертую позицию в верхнем ряду. Теперь мне нужно переименовать этот файл и все следующие файлы.
2_note3.txt
3_note7.txt
4_note4.txt
5_note9.txt
6_note2.txt
7_note6.txt
8_note8.txt
9_note5.txt
10_note1.txt
Я также мог бы хранить заказ или расположение в отдельном файле и манипулировать исключительно содержимым этого файла вместо фактических имен файлов.
arrangement.txt
note3.txt
note7.txt
note4.txt
...
Несмотря на то, что это может быть лучше, чем в последнем подходе, оно также не кажется таким уж большим, поскольку все еще существуют дополнительные издержки. Например, когда приложение запускается, мне сначала нужно прочитать этот файл, чтобы получить пользовательское расположение, прежде чем соответствующим образом сортировать файлы.
У кого-нибудь есть опыт реализации чего-то подобного? Есть ли лучший способ сделать это?