загружать большой объем данных в android интерфейс блочных блоков - PullRequest
0 голосов
/ 07 января 2020

Я работаю над проектом Android app в одном из activities У меня есть spinner, который я использовал

https://github.com/miteshpithadiya/SearchableSpinner

как я хотел, чтобы мой spinner можно было отфильтровать по имени элемента, и он отлично работает.

Но я хочу загрузить очень большое количество элементов в мой spinner (около 70000 элементов). Мой счетчик может загрузить это количество, но это займет слишком много времени, пока мой пользовательский интерфейс ответит.

Я знаю, что есть практики, которые предлагают использовать paging и другие возможные разрешения, но я не могу использовать их в данный момент, а также я попытался использовать AsyncTask, чтобы сделать этот процесс процессом background, но он тоже не работает.

Вот мой код для загрузки элементов в спиннер (кстати, товары ArrayList могут содержать 70000 элементов):

private void prepareProductsSpinner() {
    productsSpinner = findViewById(R.id.spinnerProduct);

    ArrayList<Good> goods = (ArrayList<Good>) Good.listAll(Good.class);

    //fill data in spinner
    ArrayAdapter<Good> adapter = new ArrayAdapter<>(AddEditAssetTakingItemActivity.this, android.R.layout.simple_spinner_dropdown_item, goods);
    productsSpinner.setAdapter(adapter);
    productsSpinner.setTitle("Choose an item");
    productsSpinner.setPositiveButton("Select");
}

Как мне решить эту проблему?

1 Ответ

2 голосов
/ 07 января 2020

Вы можете отобразить список в списке повторений. RecyclerView гораздо более мощный, гибкий. это не замораживает пользовательский интерфейс. Он поддерживает использование шаблона Viewholder и может содержать более 100 000 строк, он работает очень гладко. Spinner с recylerview.

...