How do we add livedata to spinner in Java

user13036081 :

How can we use livedata in spinners? I have the following:

    ArrayAdapter<CharSequence> adapter;

    LiveData<List<Site>> sites = SiteDatabase.getInstance(this).siteDao().getAllSites();

    Spinner spinner = findViewById(R.id.spinnerSites);
    adapter = new ArrayAdapter<Site>(this, 
    this,android.R.layout.simple_spinner_dropdown_item, sites); //What Goes Here ? This gives Cannot Resolve Constructor Error...
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner.setAdapter(adapter);

Thanks!

iCantC :

You need to replace this line

adapter = new ArrayAdapter<Site>(this,android.R.layout.simple_dropdown_item_1line, sites);

with this

adapter = new ArrayAdapter<Site(this,android.R.layout.simple_dropdown_item_1line, sites.getValue());

The signature for your ArrayAdapter is like this ArrayAdapter(Context context, int resource, List<Site> objects). You are correctly passing the Context and int param however the last param needs to be a List<Site> instead of a LiveData<List<Site>.

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=170724&siteId=1