Android Open Source - FastBudget3 Category List Adapter






From Project

Back to project page FastBudget3.

License

The source code is released under:

GNU General Public License

If you think the Android project FastBudget3 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 de.splitstudio.fastbudget3.db;
//w  w  w . j  ava 2 s .c  om
import static de.splitstudio.utils.NumberUtils.formatAsCurrency;

import java.util.Collections;
import java.util.Date;
import java.util.List;

import android.view.LayoutInflater;
import android.view.View;
import android.widget.ProgressBar;
import android.widget.TextView;
import de.splitstudio.fastbudget3.R;
import de.splitstudio.utils.DateUtils;
import de.splitstudio.utils.db.ObjectListAdapter;

public class CategoryListAdapter extends ObjectListAdapter<Category> {

  private final Date start;

  public CategoryListAdapter(LayoutInflater layoutInflater, List<Category> categories) {
    super(layoutInflater, R.layout.category_row, categories);
    start = DateUtils.createFirstDayOfMonth().getTime();
  }

  @Override
  public void bindView(View view, Category category) {
    int expensesCent = category.summarizeExpenses(start, null);
    int budgetCent = category.calculateBudget();
    String budgetString = formatAsCurrency(budgetCent);
    String expensesString = formatAsCurrency(expensesCent);

    ProgressBar progressBar = (ProgressBar) view.findViewById(R.id.category_fill);
    if (budgetCent < 0) {
      progressBar.setMax(1);
      progressBar.setProgress(1);
    } else {
      progressBar.setMax(budgetCent);
      progressBar.setProgress(expensesCent);
    }

    view.findViewById(R.id.button_add_expense).setTag(category.name);
    view.findViewById(R.id.button_list).setTag(category.name);
    view.findViewById(R.id.button_edit).setTag(category.name);
    view.findViewById(R.id.button_delete).setTag(category.name);

    ((TextView) view.findViewById(R.id.name)).setText(category.name);
    ((TextView) view.findViewById(R.id.category_budget)).setText(budgetString);
    ((TextView) view.findViewById(R.id.category_spent)).setText(expensesString);
  }

  @Override
  public void update(List<Category> categories) {
    objects.clear();
    objects.addAll(categories);
    Collections.sort(objects);
    notifyDataSetChanged();
  }

}




Java Source Code List

de.splitstudio.fastbudget3.CategoryActivity.java
de.splitstudio.fastbudget3.CategoryListActivity.java
de.splitstudio.fastbudget3.CategoryListDialog.java
de.splitstudio.fastbudget3.ExpenseActivity.java
de.splitstudio.fastbudget3.ExpenseListActivity.java
de.splitstudio.fastbudget3.db.BackupRestore.java
de.splitstudio.fastbudget3.db.CategoryDao.java
de.splitstudio.fastbudget3.db.CategoryListAdapter.java
de.splitstudio.fastbudget3.db.CategoryValidator.java
de.splitstudio.fastbudget3.db.Category.java
de.splitstudio.fastbudget3.db.CsvExport.java
de.splitstudio.fastbudget3.db.ExpenseDao.java
de.splitstudio.fastbudget3.db.ExpenseListAdapter.java
de.splitstudio.fastbudget3.db.Expense.java
de.splitstudio.fastbudget3.db.FastBudgetMigration.java
de.splitstudio.fastbudget3.enums.Extras.java
de.splitstudio.fastbudget3.enums.Fragments.java
de.splitstudio.fastbudget3.enums.RequestCode.java