Skip to content
This repository was archived by the owner on Jun 27, 2020. It is now read-only.

Commit 7525a76

Browse files
author
Evgeniy Kanivets
committed
Fixed dialogs and added displaying of data
1 parent fc056d2 commit 7525a76

File tree

5 files changed

+85
-33
lines changed

5 files changed

+85
-33
lines changed

app/src/main/java/com/blogspot/e_kanivets/moneytracker/activity/MainActivity.java

Lines changed: 62 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,31 @@
11
package com.blogspot.e_kanivets.moneytracker.activity;
22

33
import android.app.Activity;
4+
import android.content.DialogInterface;
5+
import android.database.Cursor;
6+
import android.database.sqlite.SQLiteDatabase;
47
import android.support.v7.app.ActionBarActivity;
58
import android.os.Bundle;
9+
import android.util.Log;
610
import android.view.Menu;
711
import android.view.MenuItem;
812
import android.view.View;
13+
import android.widget.BaseAdapter;
914
import android.widget.Button;
1015
import android.widget.ListView;
1116

1217
import com.blogspot.e_kanivets.moneytracker.R;
18+
import com.blogspot.e_kanivets.moneytracker.adapter.RecordAdapter;
1319
import com.blogspot.e_kanivets.moneytracker.helper.DBHelper;
20+
import com.blogspot.e_kanivets.moneytracker.model.Record;
1421
import com.blogspot.e_kanivets.moneytracker.ui.AddExpenseDialog;
1522
import com.blogspot.e_kanivets.moneytracker.ui.AddIncomeDialog;
23+
import com.blogspot.e_kanivets.moneytracker.util.Constants;
1624
import com.blogspot.e_kanivets.moneytracker.util.MTApp;
1725

26+
import java.util.ArrayList;
27+
import java.util.List;
28+
1829

1930
public class MainActivity extends ActionBarActivity {
2031

@@ -33,6 +44,7 @@ protected void onCreate(Bundle savedInstanceState) {
3344
setContentView(R.layout.activity_main);
3445

3546
activity = this;
47+
dbHelper = MTApp.get().getDbHelper();
3648

3749
//Link views
3850
btnAddIncome = (Button) findViewById(R.id.b_add_income);
@@ -44,18 +56,38 @@ protected void onCreate(Bundle savedInstanceState) {
4456
btnAddIncome.setOnClickListener(new View.OnClickListener() {
4557
@Override
4658
public void onClick(View v) {
47-
new AddIncomeDialog(activity).show();
59+
AddIncomeDialog dialog = new AddIncomeDialog(activity);
60+
61+
dialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
62+
@Override
63+
public void onDismiss(DialogInterface dialog) {
64+
Log.d(Constants.TAG, "onDismiss");
65+
retrieveDataFromDB();
66+
}
67+
});
68+
69+
dialog.show();
4870
}
4971
});
5072

5173
btnAddExpense.setOnClickListener(new View.OnClickListener() {
5274
@Override
5375
public void onClick(View v) {
54-
new AddExpenseDialog(activity).show();
76+
AddExpenseDialog dialog = new AddExpenseDialog(activity);
77+
78+
dialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
79+
@Override
80+
public void onDismiss(DialogInterface dialog) {
81+
Log.d(Constants.TAG, "onDismiss");
82+
retrieveDataFromDB();
83+
}
84+
});
85+
86+
dialog.show();
5587
}
5688
});
5789

58-
dbHelper = MTApp.get().getDbHelper();
90+
retrieveDataFromDB();
5991
}
6092

6193

@@ -77,4 +109,31 @@ public boolean onOptionsItemSelected(MenuItem item) {
77109
}
78110
return super.onOptionsItemSelected(item);
79111
}
112+
113+
private void retrieveDataFromDB() {
114+
SQLiteDatabase db = dbHelper.getReadableDatabase();
115+
116+
Cursor cursor = db.query(Constants.TABLE_RECORDS, null, null, null, null, null, null);
117+
118+
List<Record> records = new ArrayList<Record>();
119+
120+
if(cursor.moveToFirst()) {
121+
//Get indexes of columns
122+
int titleColIndex = cursor.getColumnIndex("title");
123+
int categoryColIndex = cursor.getColumnIndex("category_id");
124+
int priceColIndex = cursor.getColumnIndex("price");
125+
126+
do {
127+
//Add record to list
128+
records.add(new Record(cursor.getString(titleColIndex),
129+
Integer.toString(cursor.getInt(categoryColIndex)),
130+
cursor.getString(priceColIndex)));
131+
} while (cursor.moveToNext());
132+
}
133+
134+
db.close();
135+
136+
listView.setAdapter(new RecordAdapter(activity, records));
137+
((BaseAdapter) listView.getAdapter()).notifyDataSetChanged();
138+
}
80139
}

app/src/main/java/com/blogspot/e_kanivets/moneytracker/adapter/RecordAdapter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ public long getItemId(int position) {
4343
@Override
4444
public View getView(int position, View convertView, ViewGroup parent) {
4545
LayoutInflater layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
46-
convertView = layoutInflater.inflate(R.layout.view_record, parent);
46+
convertView = layoutInflater.inflate(R.layout.view_record, null);
4747

4848
TextView tvPrice = (TextView) convertView.findViewById(R.id.tv_price);
4949
TextView tvTitle = (TextView) convertView.findViewById(R.id.tv_title);

app/src/main/java/com/blogspot/e_kanivets/moneytracker/ui/AddExpenseDialog.java

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.blogspot.e_kanivets.moneytracker.ui;
22

33
import android.app.AlertDialog;
4+
import android.app.Dialog;
45
import android.content.ContentValues;
56
import android.content.Context;
67
import android.database.sqlite.SQLiteDatabase;
@@ -35,28 +36,23 @@ public AddExpenseDialog(Context context) {
3536
protected void onCreate(Bundle savedInstanceState) {
3637
super.onCreate(savedInstanceState);
3738

38-
final View layout = getLayoutInflater().inflate(R.layout.dialog_add_record, null);
39+
setContentView(R.layout.dialog_add_record);
3940

40-
AlertDialog.Builder builder = new AlertDialog.Builder(context);
41-
builder.setView(layout);
42-
43-
final AlertDialog dialog = builder.show();
44-
45-
TextView tvTitle = (TextView) layout.findViewById(R.id.tv_title);
41+
TextView tvTitle = (TextView) findViewById(R.id.tv_title);
4642
tvTitle.setText(R.string.expense);
4743
tvTitle.setBackgroundColor(context.getResources().getColor(R.color.red_light));
4844

49-
Button buttonAdd = (Button) layout.findViewById(R.id.b_add);
45+
Button buttonAdd = (Button) findViewById(R.id.b_add);
5046
buttonAdd.setText(context.getResources().getString(R.string.add_expense));
5147
buttonAdd.setOnClickListener(new View.OnClickListener() {
5248
@Override
5349
public void onClick(View v) {
5450
//Init variables for inserting record to DB
5551
ContentValues contentValues = new ContentValues();
5652

57-
String title = ((EditText) layout.findViewById(R.id.et_title)).getText().toString();
58-
String category = ((EditText) layout.findViewById(R.id.et_category)).getText().toString();
59-
String price = ((EditText) layout.findViewById(R.id.et_price)).getText().toString();
53+
String title = ((EditText) findViewById(R.id.et_title)).getText().toString();
54+
String category = ((EditText) findViewById(R.id.et_category)).getText().toString();
55+
String price = ((EditText) findViewById(R.id.et_price)).getText().toString();
6056

6157
SQLiteDatabase db = dbHelper.getWritableDatabase();
6258

@@ -71,15 +67,15 @@ public void onClick(View v) {
7167

7268
db.close();
7369

74-
dialog.dismiss();
70+
dismiss();
7571
}
7672
});
7773

78-
Button buttonCancel = (Button) layout.findViewById(R.id.b_cancel);
74+
Button buttonCancel = (Button) findViewById(R.id.b_cancel);
7975
buttonCancel.setOnClickListener(new View.OnClickListener() {
8076
@Override
8177
public void onClick(View v) {
82-
dialog.dismiss();
78+
dismiss();
8379
}
8480
});
8581
}

app/src/main/java/com/blogspot/e_kanivets/moneytracker/ui/AddIncomeDialog.java

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.blogspot.e_kanivets.moneytracker.ui;
22

33
import android.app.AlertDialog;
4+
import android.app.Dialog;
45
import android.content.ContentValues;
56
import android.content.Context;
67
import android.database.sqlite.SQLiteDatabase;
@@ -35,28 +36,23 @@ public AddIncomeDialog(Context context) {
3536
protected void onCreate(Bundle savedInstanceState) {
3637
super.onCreate(savedInstanceState);
3738

38-
final View layout = getLayoutInflater().inflate(R.layout.dialog_add_record, null);
39+
setContentView(R.layout.dialog_add_record);
3940

40-
AlertDialog.Builder builder = new AlertDialog.Builder(context);
41-
builder.setView(layout);
42-
43-
final AlertDialog dialog = builder.show();
44-
45-
TextView tvTitle = (TextView) layout.findViewById(R.id.tv_title);
41+
TextView tvTitle = (TextView) findViewById(R.id.tv_title);
4642
tvTitle.setText(R.string.income);
4743
tvTitle.setBackgroundColor(context.getResources().getColor(R.color.green_light));
4844

49-
Button buttonAdd = (Button) layout.findViewById(R.id.b_add);
45+
Button buttonAdd = (Button) findViewById(R.id.b_add);
5046
buttonAdd.setText(context.getResources().getString(R.string.add_income));
5147
buttonAdd.setOnClickListener(new View.OnClickListener() {
5248
@Override
5349
public void onClick(View v) {
5450
//Init variables for inserting record to DB
5551
ContentValues contentValues = new ContentValues();
5652

57-
String title = ((EditText) layout.findViewById(R.id.et_title)).getText().toString();
58-
String category = ((EditText) layout.findViewById(R.id.et_category)).getText().toString();
59-
String price = ((EditText) layout.findViewById(R.id.et_price)).getText().toString();
53+
String title = ((EditText) findViewById(R.id.et_title)).getText().toString();
54+
String category = ((EditText) findViewById(R.id.et_category)).getText().toString();
55+
String price = ((EditText) findViewById(R.id.et_price)).getText().toString();
6056

6157
SQLiteDatabase db = dbHelper.getWritableDatabase();
6258

@@ -71,15 +67,15 @@ public void onClick(View v) {
7167

7268
db.close();
7369

74-
dialog.dismiss();
70+
dismiss();
7571
}
7672
});
7773

78-
Button buttonCancel = (Button) layout.findViewById(R.id.b_cancel);
74+
Button buttonCancel = (Button) findViewById(R.id.b_cancel);
7975
buttonCancel.setOnClickListener(new View.OnClickListener() {
8076
@Override
8177
public void onClick(View v) {
82-
dialog.dismiss();
78+
dismiss();
8379
}
8480
});
8581
}

app/src/main/res/layout/dialog_add_record.xml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22

33
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
44
android:orientation="vertical" android:layout_width="350dp"
5-
android:layout_height="wrap_content">
5+
android:layout_height="wrap_content"
6+
android:background="@color/white">
67

78
<LinearLayout
89
android:layout_weight="1"

0 commit comments

Comments
 (0)