Пользователь может выбрать категорию и добавить сумму расходов для этой категории. Он проверяет, превышает ли введенные расходы выделенный бюджет категории.
Получение пользовательского кода ввода выглядит следующим образом
static DatabaseHelper db;
Spinner s;
EditText e;
Button submit;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_expenditure);
db = new DatabaseHelper(this);
s = (Spinner) findViewById(R.id.paymentselcat);
e = (EditText) findViewById(R.id.expenditureamount);
submit = (Button) findViewById(R.id.addexpenditureconf);
submit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String text = s.getSelectedItem().toString();
String amount = e.getText().toString();
double expenditureAmount;
if(!amount.isEmpty())
try {
expenditureAmount = Double.parseDouble(amount);
} catch (Exception e1) {
e1.printStackTrace();
}
boolean ckeckbudget = db.overBudget(expenditureAmount);
}
------
В помощнике по базе данных функция overBudget выглядит следующим образом.
public boolean overBudget(double amount){
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery("Select * from PayableBudget", null);
double newAmount = cursor.getDouble(2) + amount;
if (newAmount<cursor.getDouble(1)){
return false;
}
return true;
}
Здесь таблица PayableBudget включает 3 столбца , а именно Имя, Бюджет и Потрачено.
Функция должна быть в состоянии получить пользовательский ввод, проверить, есть ли бюджет> (потрачено + ввод) и вернуть true.