2017-12-23 6 views
1

Ich habe ein paar Antworten und Tutorials über die Verwendung von copyFromRealm gelesen, aber ich bin immer noch unsicher, ob mein Verständnis korrekt ist; Das heißt, verwenden Sie copyFromRealm, wenn Sie nicht gebundene Objekte haben möchten (wenn Sie sie ändern, wird sich nichts in Realm DB ändern).Soll ich copyFromRealm() zum Auffüllen eines Spinner verwenden?

In meinem Fall habe ich einen Spinner und ich möchte es mit Werten von Realm füllen:

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); 

Ich glaube, ich weiß nicht, die Objekte zu einer nicht verwalteten Liste kopieren müssen, da ich sich nicht ändern werde und ich kopiere die Werte sowieso in ein separates Array (entries).

Ist mein Denken hier richtig?

+0

Ich denke, Sie sind völlig richtig – Rainmaker

Antwort

1

Für Spinners, wenn Sie nicht beabsichtigen, die Dinge direkt zu ändern, können Sie RealmBaseAdapter verwenden, so lange Sie anpassen getDropDownView.

@Override 
public View getDropDownView(int position, @Nullable View convertView, 
     @NonNull ViewGroup parent) { 
    ... 
} 
Verwandte Themen