我应该使用copyFromRealm()来填充Spinner吗?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我应该使用copyFromRealm()来填充Spinner吗?相关的知识,希望对你有一定的参考价值。
我已经阅读了一些关于何时使用copyFromRealm
的答案和教程,但我仍然不确定我的理解是否正确;也就是说,当你想拥有不受限制的对象时使用copyFromRealm
(如果你改变它们,Realm DB中什么都不会改变)。
在我的情况下,我有一个Spinner,我想用Realm中的值填充它:
Spinner mySpinner = ...;
List<MyObjects> myObjects = RealmInstance.getInstance().getRealm().where(MyObject.class).findAll();
myObjects = RealmInstance.getInstance().getRealm().copyFromRealm(myObjects); // do I need this here?
List<String> entries = new ArrayList<>();
for(MyObject t : myObjects)
entries.add(t.getName() + " (" + t.getDesc() + ")");
ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, entries);
mySpinner.setAdapter(adapter);
我认为我不需要将对象复制到非托管列表,因为我不会修改它们,我无论如何都要将值复制到一个单独的数组(entries
)。
我的想法就在这里吗?
答案
对于Spinners,如果你不打算直接改变东西,那么你可以使用RealmBaseAdapter,只要你自定义getDropDownView
。
@Override
public View getDropDownView(int position, @Nullable View convertView,
@NonNull ViewGroup parent) {
...
}
以上是关于我应该使用copyFromRealm()来填充Spinner吗?的主要内容,如果未能解决你的问题,请参考以下文章