Android Open Source - journal Expenses List Adapter






From Project

Back to project page journal.

License

The source code is released under:

MIT License

If you think the Android project journal listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package cochrane343.journal;
/*  ww w .  j av  a 2 s .c  o m*/
import android.content.Context;
import android.database.Cursor;
import android.support.v4.widget.CursorAdapter;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import cochrane343.journal.Constants.DisplayMode;
import cochrane343.journal.contentprovider.JournalContract.Category;
import cochrane343.journal.contentprovider.JournalContract.Expense;
import cochrane343.journal.exceptions.IllegalDisplayModeException;

/**
 * The adapter for populating the list of expenses.
 * 
 * @author cochrane343
 * @version 1.0
 */
public class ExpensesListAdapter extends CursorAdapter {  
    private DisplayMode displayMode;
            
    // TODO Add best practices such as view holders

    public ExpensesListAdapter(final Context context, final Cursor cursor) {
        super(context, cursor, false);
    }

    @Override
    public View newView(final Context context, final Cursor cursor, final ViewGroup parent) {
        final LayoutInflater inflater = LayoutInflater.from(context);
        return inflater.inflate(R.layout.list_item_expense, parent, false);
    }

    @Override
    public void bindView(final View view, final Context context, final Cursor cursor) {
        int descriptionIndex;
        int costIndex;
        
        switch (displayMode) {
            case CATEGORY_OVERVIEW:
                descriptionIndex = cursor.getColumnIndex(Category._NAME);
                costIndex = cursor.getColumnIndex(Category._TOTAL);
                break;
            case SINGLE_CATEGORY:
                descriptionIndex = cursor.getColumnIndex(Expense._DESCRIPTION);
                costIndex = cursor.getColumnIndex(Expense._COST);
                break;
            default:
                throw new IllegalDisplayModeException(displayMode.name());
        }

        final String description = cursor.getString(descriptionIndex);
        final String translatedDescription = TranslationHelper.translate(description, context);
        final TextView descriptionTextView = (TextView) view.findViewById(R.id.list_item_expense_description);
        descriptionTextView.setText(translatedDescription);
        
        final long costInCents = cursor.getLong(costIndex);
        final String costString = CurrencyHelper.toPrintString(costInCents);
        final TextView costTextView = (TextView) view.findViewById(R.id.list_item_expense_cost);
        costTextView.setText(costString);
    }
    
    public void setDisplayMode(final DisplayMode displayMode) {
        this.displayMode = displayMode;
    }
}




Java Source Code List

cochrane343.journal.Constants.java
cochrane343.journal.CurrencyHelper.java
cochrane343.journal.DateTimeHelper.java
cochrane343.journal.ExpenseEditListener.java
cochrane343.journal.ExpensesListAdapter.java
cochrane343.journal.MainActivity.java
cochrane343.journal.MonthlyExpensesFragment.java
cochrane343.journal.MonthlyExpensesPagerAdapter.java
cochrane343.journal.SettingsActivity.java
cochrane343.journal.TranslationHelper.java
cochrane343.journal.contentprovider.JournalContentProvider.java
cochrane343.journal.contentprovider.JournalContract.java
cochrane343.journal.contentprovider.JournalDatabaseHelper.java
cochrane343.journal.dialogs.CategorySpinnerAdapter.java
cochrane343.journal.dialogs.ExpenseDialogFragment.java
cochrane343.journal.dialogs.ExpenseDialogListener.java
cochrane343.journal.exceptions.IllegalDisplayModeException.java
cochrane343.journal.exceptions.IllegalLoaderIdException.java
cochrane343.journal.exceptions.IllegalUriException.java
cochrane343.journal.exceptions.MissingFragmentArgumentException.java