EECS 285 Project 4: Budget Tracker
In this project, you will build an Android application for keeping track of a budget. The application
will allow a user to add individual transactions, specifying each transaction’s category. It will then
display the total money spent on each category and overall, as will as allow the user to list the
The purpose of this project is to gain basic experience in Android development. You will have full
freedom to design your code and layouts, as long as you adhere to the minimum specifications
This project is divided into two parts, both of which need to be turned in on their respective due
The setup tutorial, including the Android first app. Follow the instructions in the tutorial for
completing and submitting the first app.
The full project described here.
This is a big-picture view of what you’ll need to do to complete this project. Most of the pieces
listed here also have a corresponding section later on in the spec that goes into more detail.
This project will be graded by hand for correctness, and the correctness portion is worth 100% of
your project grade. We will not grade your programming practices on this project. However, you
should still adhere to good practices when writing your code.
The first app is worth 10% of your project grade, while the full project described here is worth 90%.
We recommend you work with a partner for this project. Please see the syllabus for partnership
rules. Since the first app is submitted separately, you do not have to work in the same partnership
for the first app as for the full project.
List of Requirements
You must have at least two activities, with proper “Up” navigation between the child and parent
You must have an activity that displays the total for each category, as well as the overall total.
The categories must be sorted in alphabetical order. This must be your app’s initial activity.
You must have an activity that displays every transaction, sorted by the order in which the
transactions were added. Display more recent transactions first. At a minimum, each transaction
should display its name, category, and cost.
Your app must have at least one dialog.
Any lists that you have must be scrollable. We recommend using either a ListView or a
RecyclerView , with a custom ArrayAdapter for representing the list elements.
You must have a way of adding transactions and categories. It is up to you whether to separate
the task of adding a new category from that of a transaction, or combine them as in the
When adding a transaction, you must require that the user provide a category, a transaction
name, and a cost. The cost can be entered either as a whole dollar amount or as dollars and
cents. Your app must use a numeric keyboard for entering the cost.
Your app should prohibit invalid entries (e.g. empty name or category, a cost of zero, a cost that
isn’t a valid dollar and cent amount).
You must have a way of removing transactions. This can either be individually or all transactions
When removing transactions, your app must ask for confirmation before proceeding to remove
The transaction data your app stores must be persistent. This means that if the app is closed
and restarted, all the data must still be there. We recommend using binary I/O (i.e. serialization)
to store files on internal storage.
Money values must be displayed as dollars and cents with a decimal point in between, and the
cents portion must be exactly two digits. We recommend storing money values in cents, using
an integral type (e.g. long ), so that you don’t have to worry about rounding issues. Then
simply divide by 100 to get the dollar value and mod by 100 to get the cent value. You can use
formatted output to ensure that cents are always printed out as two digits.
Your app’s user interface must be intuitive and self-explanatory. We will not read through
documentation to figure out how to use your app.
本网站支持 Alipay WeChatPay PayPal等支付方式
E-mail: firstname.lastname@example.org 微信号:vipnxx