【发布时间】:2020-04-24 15:48:34
【问题描述】:
我正在activities 之一的Android app 项目中工作我有一个spinner 我使用过
https://github.com/miteshpithadiya/SearchableSpinner
正如我所愿,我的spinner 可以按项目名称过滤,并且效果很好。
但我想在我的spinner 中加载大量项目(大约 70000 个项目)。我的微调器可以加载此数量,但我的 UI 响应需要很长时间。
我知道有些做法建议使用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");
}
我该如何解决这个问题?
【问题讨论】:
-
你是怎么解决的?
-
@b-developer 我使用了另一个具有回收站视图的活动来显示所有产品,当用户选择一个项目时,我已经返回了该项目的 id 并将该项目加载到该微调器中。跨度>
标签: android android-spinner large-data