· 7 years ago · Feb 14, 2019, 11:30 AM
1public class DatabaseHelper extends SQLiteOpenHelper {
2
3private static final String TAG = "DatabaseHelper" ;
4private static final String TAG1 = "DatabaseHelper" ;
5public static final String DB_NAME = "softix.db" ;
6public static final String TABLE_NAME = "Account_Master" ;
7public static final String TABLE_COL4 = "op_blnc" ;
8public static final String TABLE_COL1 = "acc_id" ;
9public static final String TABLE_COL2 = "acc_title" ;
10public static final String TABLE_COL3 = "group_id" ;
11public static final String TABLE1_NAME = "groups" ;
12public static final String TABLE2_NAME = "users" ;
13public static final int DB_VERSION = 2 ;
14private final Context context ;
15
16public DatabaseHelper(Context context){
17 super(context, DB_NAME, null, DB_VERSION);
18 this.context=context ;
19}
20
21@Override
22public void onCreate(SQLiteDatabase db) {
23
24 String groupsTabledb = "CREATE TABLE " + TABLE1_NAME + " " +
25 "(group_id INTEGER PRIMARY KEY AUTOINCREMENT, group_title
26VARCHAR(30))" ;
27 String accountsTabledb = "CREATE TABLE " + TABLE_NAME + " " +
28 "(" + TABLE_COL1 + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
29TABLE_COL2 + " VARCHAR(50), " +
30 TABLE_COL3 + " INTEGER, " + TABLE_COL4 + " VARCHAR(50))" ;
31 String usersTabledb = "CREATE TABLE " + TABLE2_NAME + " " +
32 "(user_id INTEGER PRIMARY KEY AUTOINCREMENT, username TEXT,
33password TEXT)" ;
34
35 try {
36 db.execSQL(groupsTabledb);
37 db.execSQL(accountsTabledb);
38 db.execSQL(usersTabledb);
39 }catch (Exception e){
40 Log.d(TAG1, e.getMessage());
41 }
42}
43public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
44 String groupsTabledb = "DROP TABLE IF EXISTS " + TABLE1_NAME ;
45 String accountsTabledb = "DROP TABLE IF EXISTS " + TABLE_NAME ;
46 String usersTabledb = "DROP TABLE IF EXISTS " + TABLE2_NAME ;
47 if (oldVersion == 2) {
48 db.execSQL("ALTER TABLE " + TABLE_NAME + " ADD COLUMN " + TABLE_COL4
49+ " VARCHAR(60)");
50 }else{
51 Toast.makeText(context, "Data not upgraded",
52Toast.LENGTH_SHORT).show();
53 }
54 db.execSQL(groupsTabledb);
55 db.execSQL(accountsTabledb);
56 db.execSQL(usersTabledb);
57
58 onCreate(db);
59}
60// update/edit data in rows
61
62public int getIDs(ModelAccounts name) {
63 String query1 = "SELECT " + TABLE_COL1 + " FROM " + TABLE_NAME + "
64WHERE " + TABLE_COL2
65 + " = '" + name + "'";
66 SQLiteDatabase db = this.getWritableDatabase();
67 Cursor res = db.rawQuery(query1, null);
68 if (res.getCount() >= 0) {
69 do {
70 return
71Integer.parseInt(res.getString(res.getColumnIndex(TABLE_COL1))); // if your
72column name is rowid then replace id with rowid
73 } while (res.moveToNext());
74 } else {
75 Toast.makeText(context, "Not updated",
76Toast.LENGTH_SHORT).show();
77 return 0;
78 }
79}
80
81public void updateNote(String rowId, String accountname, String opBalnc){
82
83 SQLiteDatabase db = this.getWritableDatabase();
84 ContentValues updatenote = new ContentValues();
85 updatenote.put(TABLE_COL2, accountname);
86 updatenote.put(TABLE_COL4, opBalnc);
87
88 if (!rowId.isEmpty())
89 db.update(TABLE_NAME, updatenote, TABLE_COL1 + "=?", new String[]
90{""+rowId});
91 else
92 db.insert(TABLE_NAME, null, updatenote);
93 db.close();
94}
95
96@Override
97public void onCreateContextMenu(ContextMenu menu, View v,
98ContextMenu.ContextMenuInfo menuInfo) {
99 super.onCreateContextMenu(menu, v, menuInfo);
100 getMenuInflater().inflate(R.menu.list_view_menu, menu);
101}
102
103@Override
104public boolean onContextItemSelected(final MenuItem item) {
105 switch (item.getItemId()) {
106
107 case R.id.edit_item:
108 AlertDialog.Builder dialog = new AlertDialog.Builder(this);
109 dialog.setTitle("Edit Account");
110 dialog.setIcon(R.drawable.ic_action_edit);
111 dialog.setMessage("Enter new name and Balance info :");
112
113 final EditText nameEdit = new EditText(AccountsActivity.this);
114 final EditText blncEdit = new EditText(AccountsActivity.this);
115 nameEdit.setHint("Account Name");
116 nameEdit.setHintTextColor(getResources().getColor(R.color.colorHintText));
117 blncEdit.setHint("Opening Balance");
118 blncEdit.setHintTextColor(getResources().getColor(R.color.colorHintText));
119
120 LinearLayout layout = new LinearLayout(AccountsActivity.this);
121 layout.setOrientation(LinearLayout.VERTICAL);
122 LinearLayout.LayoutParams lp1 = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,
123 LinearLayout.LayoutParams.WRAP_CONTENT);
124 LinearLayout.LayoutParams lp2 = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,
125 LinearLayout.LayoutParams.WRAP_CONTENT);
126 lp1.setMargins(20, 0, 20, 30);
127 lp2.setMargins(20, 0, 20, 20);
128 Resources r = getResources();
129 int px = (int) TypedValue.applyDimension(
130 TypedValue.COMPLEX_UNIT_DIP, 300, r.getDisplayMetrics());
131
132 nameEdit.setWidth(px);
133 blncEdit.setWidth(px);
134
135 layout.addView(nameEdit, lp1);
136 layout.addView(blncEdit, lp2);
137
138 dialog.setView(layout);
139 dialog.setPositiveButton("Save", new DialogInterface.OnClickListener() {
140 @Override
141 public void onClick(DialogInterface dialog,final int which) {
142 try {
143 AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
144 int title = info.position;
145 int id = mdatabaseHelper.getIDs(listRec.get(title)) ;
146 String ids = String.valueOf(id) ;
147 String name = nameEdit.getText().toString() ;
148 String balance = blncEdit.getText().toString();
149 mdatabaseHelper.updateNote(ids, name, balance);
150 Toast.makeText(AccountsActivity.this, ""+id, Toast.LENGTH_SHORT).show();
151
152 }catch (Exception ex) {
153 Toast.makeText(AccountsActivity.this, ex.getMessage(), Toast.LENGTH_LONG).show();
154 }
155 }
156 });
157 dialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
158 @Override
159 public void onClick(DialogInterface dialog, int which) {
160 dialog.cancel();
161 }
162 });
163 dialog.show();
164 break;
165 }
166 return super.onContextItemSelected(item);
167}