выберите любой элемент из списка из 10 000 элементов в android
-
27-10-2019 - |
Вопрос
Я пытаюсь просмотреть вопросы, чтобы увидеть, есть ли какая-нибудь тема, похожая на мою проблему, но пока не нашел. Вот моя проблема: у меня есть список продуктов, который содержит ~ 10 000 элементов, хранящихся в базе данных SQLite. В моем приложении мне нужно найти любой элемент из этого списка. У меня есть несколько вариантов:
- Используйте autoCompleteTextView со всеми предварительно загруженными продуктами, и когда я наберу название продукта, в списке будет предложен продукт, поэтому мне просто нужно выбрать одно из предложенных. Это самый простой способ, но я чувствую, что 10 000 элементов (или даже больше в будущем) будет очень сложно загрузить.
- Когда я набираю любой символ и нажимаю "поиск", приложение выбирает все продукты из базы данных с этим символом в качестве фильтра. Затем набор результатов передается в некоторое представление списка, чтобы я мог выбрать любой элемент. Такой подход позволит сэкономить память, поскольку приложение загружает в память не все элементы, а только элементы, содержащие символы фильтрации.
Есть ли лучший способ сделать это? Спасибо
Решение
Ваш второй вариант - лучший вариант.Это похоже на то, как вы получаете список рекомендуемых результатов поиска при вводе запроса.Для вас, предполагая, что вы используете asynctask для запроса своей базы данных, у вас может быть правильное сообщение загрузки, сигнализируемое onProgressUpdate
Другие советы
Можете ли вы распределить предметы по категориям?Чтобы вы могли использовать счетчик для выбора категории и использовать AutoCompleteTextView для ввода и выбора элементов.