Нужен эффективный пример сопоставления данных для детализации ListView в Android / Java - PullRequest
1 голос
/ 12 октября 2010

Я довольно новичок в программировании на Java и ищу базовые сопоставления данных. У меня есть объект ListView с простой настройкой массива данных, как это:

setListAdapter(new ArrayAdapter<String>(this, R.layout.my_list_xml, MY_DATA));

Я хочу, чтобы, когда вы щелкали по элементу, он переходил в его подкатегорию. Меня не беспокоит переключение данных при нажатии на элемент. Я просто не уверен, как эффективно создать набор данных с помощью Android. В конце концов, это будет зависеть от базы данных, но я хочу выяснить, как использовать mock-data, чтобы это сначала заработало. Пример того, что мне нужно, структура данных будет выглядеть так:

myData = { 'category1' => 
            { 'subcategory1' => 'subcategorydetail1', 
              'subcategory2' => 'subcategorydetail2'},
           'category2' => 
            { 'subcategory3' => 'subcategorydetail3', 
              'subcategory4' => 'subcategorydetail4'}
       }

Я бы хотел иметь к нему доступ, например, myData ['category2'] или myData ['category2'] ['subcategory3']

Должен ли я создать это в XML-файлах и связать их, или лучше создать для него новую структуру классов?

Спасибо за вашу помощь!

1 Ответ

1 голос
/ 12 октября 2010

Если в конечном итоге это приложение будет отображать данные из локальной базы данных SQLite, то я думаю, что вам лучше будет спроектировать эти схемы БД, заполнить результирующие таблицы фиктивными данными и использовать их. Причина в том, что вы должны написать собственные классы CursorAdapter для заполнения ваших ListViews данными, поступающими из БД (из курсоров), и они немного отличаются от адаптеров, расширяющих BaseAdapter - которые вы должны будете использовать, если будете заполнять их списки с общими объектами.

Таким образом, вы сможете избежать утомительной задачи отображения данных из БД в объекты - хотя это зависит от того, что вы хотите сделать с этими данными.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...