user3501777
user3501777

Reputation: 63

Populating a custom listview from List, not an ArrayList

I am trying to populate a custom Android ListView from a List. I am using sugar ORM to save and get data from a database. In my Activity I use the following 2 lines to get the data, and put it in a simple listview.

    List<Fish> fishList = Select.from(Fish.class).orderBy("species").list();
    setListAdapter(new ArrayAdapter<Fish>(this,android.R.layout.simple_list_item_1, fishList));

This works as expected and displays the getString() method from the Fish class.

Every method I have found for populating a custom listview uses ArrayList but fishList is just a List. I have tried probably 4 or 5 tutorials and they all come up short. Most just describe populating a list manually, but not how to do it if I already have the data in a database.

I have the ArrayAdapter classes set up and at one point had it working where it would just load the most recent object into the list. I suspected some kind of loop was needed but couldn't get that working after hours of trying.

Is there a way to populate a custom listview using my List, or do I need to convert it to an ArrayList somehow, and if so, how do I do that for all items in the List?

Can I replace the first line so it gets the data from the database and puts it in an ArrayList right away?

I apologize if this is super simple (I'm sure it is) but I have spent 4 days trying to find a solution before resorting to asking a question here. Thank you so much for any help you can provide.

Upvotes: 0

Views: 1201

Answers (2)

user3501777
user3501777

Reputation: 63

Found Exactly what I needed here:ListView Populating using Custom Class

In my My onCreate() adapter = new ListAdapter(this);

    listView = getListView();

    List<Fish> fishList = Select.from(Fish.class).orderBy("species").list();  //get data from database  (SugarORM)
    adapter.setData(fishList);
    listView.setAdapter(adapter);

Upvotes: 2

Related Questions