在android spinner块UI中加载大量数据

在android spinner块UI中加载大量数据,android,android-spinner,large-data,Android,Android Spinner,Large Data,我在一个活动中从事一个Android应用程序项目我使用了一个微调器 正如我所希望的那样,我的微调器可以按项目名称进行过滤,并且工作得非常完美 但是我想在我的微调器中加载大量的项目(大约70000个项目)。我的微调器可以加载此数量,但需要很长时间才能收到UI响应 我知道有一些实践建议使用分页和其他可能的解决方案,但目前我无法使用它们,而且我尝试使用异步任务将此过程设置为后台过程,但它也不起作用 下面是我在spinner中加载项目的代码(ArrayList商品可能包含70000个项目): priv

我在一个
活动中从事一个
Android应用程序
项目
我使用了一个
微调器

正如我所希望的那样,我的
微调器可以按项目名称进行过滤,并且工作得非常完美

但是我想在我的
微调器中加载大量的项目(大约70000个项目)。我的微调器可以加载此数量,但需要很长时间才能收到UI响应

我知道有一些实践建议使用
分页
和其他可能的解决方案,但目前我无法使用它们,而且我尝试使用
异步任务
将此过程设置为
后台
过程,但它也不起作用

下面是我在spinner中加载项目的代码(ArrayList商品可能包含70000个项目):

private void prepareProductsSpinner(){
productsSpinner=findViewById(R.id.喷丝头产品);
ArrayList商品=(ArrayList)Good.listAll(Good.class);
//在微调器中填充数据
ArrayAdapter=新的ArrayAdapter(AddeditAssetAttachingItemActivity.this,android.R.layout.simple\u spinner\u dropdown\u item,goods);
productsSpinner.setAdapter(适配器);
productsSpinner.setTitle(“选择项目”);
productsSpinner.setPositiveButton(“选择”);
}

我怎样才能解决这个问题

可以在微调器回收视图中显示arraylist。
RecyclerView
功能更强大、更灵活。它不会冻结用户界面。它支持使用Viewholder模式,可以包含100k+行,运行非常平稳。

好的,我会试试看,然后告诉你。建议的解决方案对我不起作用。问题在于在单个微调器中加载项目的机制,而不是在活动中添加多个微调器。您是如何解决的?@b-developer我使用了另一个具有回收器视图的活动来显示所有产品,当用户选择一个项目时,我已返回该项目的id并将该项目加载到该微调器中。
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");
}