Android Multi-Level List Viewer
In this project, you'll use what we've learned about ListViews and adapters in Android to build an app that
presents hierarchical data. As you'll see from the examples, this is a common pattern.
Data Requirements
You'll work with at least two levels of lists, using the first level to get to the second level,
and then using the second level to get to more detailed information. This is similar to what we did in class with the state information,
except that we only had one level. If we had countries and then states or something like states > counties or states > cities,
that would match the kind of hierarchy we'll use in this project.
You can use whatever data you want, but it needs to meet these requirements (be sure to add a comment to cite your source if needed):
- First level list needs at least 3 items.
- All second level lists need to have at least one item. At least one of the second level lists should have more than one item.
- The items from the second level lists need at least 4 characteristics to be displayed on a details screen.
- The items from the second level lists could use different sets of properties or share the same one(s).
App Requirements
Create a new Android app project with an appropriate name.
- Main menu:
- Use a ListActivity.
- Use SimpleListItem1 or SimpleListItem2 built-in row view.
- Launch the appropriate second level menu when a row is selected.
- Second level menu(s):
- Use a normal Activity with a ListView added to the layout. You'll probably want to also add some kind of heading above the list
to indicate which main menu item was selected.
- Implement fast scrolling and cell reuse.
- Launch the appropriate details screen when a row is selected.
- Depending on your data, you may share the same activity, layout, adapter, etc. for this menu for each item from the main menu
or you may need to create a separate one.
- OPTIONAL: Create and use a custom row layout for the ListView (for at least one of the second level menus).
- Details screen:
- Show at least 4 characteristics / properties for the selected item.
- Depending on your data, you may share the same activity, layout, etc. for this screen for each kind of item from the second level menu
or you may need to create a separate one.
Please zip up and submit the source code for your completed app. Please let me know if you have any questions.
Examples
My Favorite Things
- Movies (data from on IMDb)
-
- Title: The Shawshank Redemption
- Director: Frank Darabont
- Rating: R
- ReleaseDate: 1994-10-14
-
- Title: Inception
- Director: Christopher Nolan
- Rating: PG-13
- ReleaseDate: 2010-07-16
-
- Title: Up
- Director: Pete Docter
- Rating: PG
- ReleaseDate: 2009-05-29
- Books
-
- Title
- Author
- ISBN
- DatePublished
- Rating
- DateLastRead
-
- Title
- Author
- ISBN
- DatePublished
- Rating
- DateLastRead
- Places
-
- Name
- Description
- Location
- Latitude
- Longitude
- DateFirstVisited
- DateLastVisited
Class Schedule
- Monday
-
- Title: Economics
- StartTime: 0800
- EndTime: 1150
- Location: A234
- Instructor: Mr. Green
- Tuesday
-
- Title: Object Oriented Programming 2
- StartTime: 0800
- EndTime: 1150
- Location: A168
- Instructor: Mr. Orange
-
- Title: Physics
- StartTime: 1300
- EndTime: 1650
- Location: F212
- Instructor: Mrs. White
- Wednesday
- Thursday
- Friday
Catalog for a Used Car Lot (made up info)
- Cars
-
- Make: Ford
- Model: Fusion
- Year: 2012
- Mileage: 24599
- Price: 12999
-
- Make: Chevy
- Model: Malibu
- Year: 2014
- Mileage: 4763
- Price: 14999
-
- Make: Chevy
- Model: Camero
- Year: 1967
- Mileage: 99236
- Price: 9999
- Trucks
-
- Make: Ford
- Model: F-150
- Year: 2014
- Mileage: 30452
- Price: 26999
-
- Make: Chevy
- Model: Silverado
- Year: 2010
- Mileage: 78348
- Price: 15995
- Vans
-
- Make: Honda
- Model: Odyssey
- Year: 2013
- Mileage: 25042
- Price: 9956
-
- Make: Toyota
- Model: Sienna
- Year: 2015
- Mileage: 8123
- Price: 24999
Music Collection
Genres > Songs > Song Details
Albums > Songs > Song Details
Genres > Albums > Songs > Song Details
Mail App
Accounts > E-mails > E-mail Details