Advertisement
Guest User

Untitled

a guest
Jan 22nd, 2016
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 22.84 KB | None | 0 0
  1. package com.example.khuatduytan.quanlytaichinh;
  2.  
  3. import android.content.ContentValues;
  4. import android.content.Context;
  5. import android.database.Cursor;
  6. import android.database.sqlite.SQLiteDatabase;
  7. import android.database.sqlite.SQLiteOpenHelper;
  8.  
  9. /**
  10. * Created by Khuat Duy Tan on 1/17/2016.
  11. */
  12. public class DatabaseHelper extends SQLiteOpenHelper {
  13. private static String DATABASE_NAME = "QuanLyTaiChinh";
  14. private static String TABLE_USER = "User";
  15. private static String TABLE_FAMILY_MEMBER = "Family_Member";
  16. private static String TABLE_TYPE_NOTE = "Type_Note";
  17. private static String TABLE_NOTE = "Note";
  18. //Common column name
  19. public static String KEY_ID = "_id";
  20.  
  21. //User table
  22. private static String KEY_USERNAME = "Username";
  23. private static String KEY_PASSWORD = "Password";
  24. private static String KEY_QUESTION = "Question";
  25. private static String KEY_ANSWER = "Answer";
  26. private static String KEY_TOTAL_MONEY ="Total_Money";
  27. private static String KEY_INSERT_FAMILYMEMBER_STATUS = "InsertMember_Status";
  28. private static String KEY_INSERT_TYPENOTES_STATUS = "Insert_TypeNotes_Status";
  29. private static String KEY_INSERT_TOTALMONEY_STATUS = "Insert_Money_Status";
  30.  
  31. //Family Member table
  32. public static String KEY_NAME = "Name";
  33. public static String KEY_AGE = "Age";
  34. public static String KEY_ID_FAMILY = "Id_Family";
  35.  
  36. //Type Notes table
  37. private static String KEY_NAME_TYPE_NOTES = "Type_Note";
  38.  
  39. //Note table
  40. private static String KEY_CONTENT_NOTE = "Content";
  41. private static String KEY_DATE_NOTE = "Date_Created";
  42. private static String KEY_ID_MEMBER_IN_NOTE = "ID_Family_Member";
  43. private static String KEY_ID_TYPE_NOTE = "ID_Type_Note";
  44. private static String KEY_MONEY = "Money";
  45.  
  46. //User table create statement
  47. private static String CREATE_USER_TABLE = "CREATE TABLE " + TABLE_USER + " (" + KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + KEY_USERNAME +
  48. " TEXT, " + KEY_PASSWORD + " TEXT, " + KEY_QUESTION + " TEXT, " + KEY_ANSWER + " TEXT, " + KEY_TOTAL_MONEY + " TEXT, " + KEY_INSERT_FAMILYMEMBER_STATUS +
  49. " TEXT, " + KEY_INSERT_TYPENOTES_STATUS + " TEXT, " + KEY_INSERT_TOTALMONEY_STATUS + " TEXT" + ")";
  50.  
  51. //Family Member table create statement
  52. private static String CREATE_FAMILY_MEMBER_TABLE = "CREATE TABLE " + TABLE_FAMILY_MEMBER + " (" + KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + KEY_ID_FAMILY +
  53. " TEXT, " + KEY_NAME + " TEXT, " + KEY_AGE + " TEXT" + ")";
  54.  
  55. //Type Note table create statement
  56. private static String CREATE_TYPE_NOTE_TABLE = "CREATE TABLE " + TABLE_TYPE_NOTE + " (" + KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + KEY_NAME_TYPE_NOTES + " TEXT" + ")";
  57.  
  58. //Note table create statement
  59. private static String CREATE_NOTE_TABLE = "CREATE TABLE " + TABLE_NOTE + " (" + KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "+ KEY_CONTENT_NOTE + " TEXT, " + KEY_DATE_NOTE + " TEXT, " +
  60. KEY_ID_MEMBER_IN_NOTE + " TEXT, " + KEY_ID_TYPE_NOTE + " TEXT, " + KEY_MONEY + " TEXT" + ")";
  61.  
  62. // private static String[] ALL_KEY_FAMILY_MEMBER_TABLE = new String[]{KEY_ID, KEY_ID_FAMILY, KEY_NAME, KEY_AGE};
  63.  
  64. public DatabaseHelper(Context context) {
  65. super(context, DATABASE_NAME, null, 1);
  66. }
  67.  
  68.  
  69. @Override
  70. public void onCreate(SQLiteDatabase db) {
  71. db.execSQL(CREATE_USER_TABLE);
  72. db.execSQL(CREATE_FAMILY_MEMBER_TABLE);
  73. db.execSQL(CREATE_TYPE_NOTE_TABLE);
  74. db.execSQL(CREATE_NOTE_TABLE);
  75. }
  76.  
  77. public Cursor getDataTableUser(){
  78. SQLiteDatabase db = this.getWritableDatabase();
  79. Cursor res = db.rawQuery("SELECT * FROM " + TABLE_USER, null);
  80. return res;
  81. }
  82.  
  83. public Cursor getDataTableMemberFamily(){
  84. SQLiteDatabase db = this.getWritableDatabase();
  85. Cursor res = db.rawQuery("SELECT * FROM " + TABLE_FAMILY_MEMBER, null);
  86. return res;
  87. }
  88.  
  89. public long insertUserTable(String username, String password, String question, String answer, String totalMoney, String insertMemberStatus, String insertTypeNoteStatus, String insertTotalMoneyStatus){
  90. SQLiteDatabase db = this.getWritableDatabase();
  91. ContentValues contentValues = new ContentValues();
  92. contentValues.put(KEY_USERNAME,username);
  93. contentValues.put(KEY_PASSWORD,password);
  94. contentValues.put(KEY_QUESTION,question);
  95. contentValues.put(KEY_ANSWER,answer);
  96. contentValues.put(KEY_TOTAL_MONEY, totalMoney);
  97. contentValues.put(KEY_INSERT_FAMILYMEMBER_STATUS, insertMemberStatus);
  98. contentValues.put(KEY_INSERT_TYPENOTES_STATUS, insertTypeNoteStatus);
  99. contentValues.put(KEY_INSERT_TOTALMONEY_STATUS, insertTotalMoneyStatus);
  100.  
  101. long result = db.insert(TABLE_USER, null, contentValues);
  102. return result;
  103. }
  104.  
  105. public long insertMemberFamilyTable(String idFamily, String name, String age){
  106. SQLiteDatabase db = this.getWritableDatabase();
  107. ContentValues contentValues = new ContentValues();
  108. contentValues.put(KEY_ID_FAMILY, idFamily);
  109. contentValues.put(KEY_NAME, name);
  110. contentValues.put(KEY_AGE, age);
  111. long result = db.insert(TABLE_FAMILY_MEMBER, null, contentValues);
  112. return result;
  113. }
  114.  
  115. public long updateUserTable(long id, String username, String password, String question, String answer, String totalMoney, String insertMemberStatus, String insertTypeNoteStatus, String insertTotalMoneyStatus){
  116. SQLiteDatabase db = this.getWritableDatabase();
  117. ContentValues contentValues = new ContentValues();
  118. contentValues.put(KEY_USERNAME,username);
  119. contentValues.put(KEY_PASSWORD,password);
  120. contentValues.put(KEY_QUESTION,question);
  121. contentValues.put(KEY_ANSWER,answer);
  122. contentValues.put(KEY_TOTAL_MONEY, totalMoney);
  123. contentValues.put(KEY_INSERT_FAMILYMEMBER_STATUS, insertMemberStatus);
  124. contentValues.put(KEY_INSERT_TYPENOTES_STATUS, insertTypeNoteStatus);
  125. contentValues.put(KEY_INSERT_TOTALMONEY_STATUS, insertTotalMoneyStatus);
  126. long result = db.update(TABLE_USER, contentValues, KEY_ID + "=" + id, null);
  127. return result;
  128. }
  129.  
  130. @Override
  131. public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
  132. db.execSQL("DROP TABLE IF EXIST " + TABLE_USER);
  133. db.execSQL("DROP TABLE IF EXIST " + TABLE_FAMILY_MEMBER);
  134. db.execSQL("DROP TABLE IF EXIST " + TABLE_TYPE_NOTE);
  135. db.execSQL("DROP TABLE IF EXIST " + TABLE_NOTE);
  136. onCreate(db);
  137. }
  138. }
  139.  
  140. package com.example.khuatduytan.quanlytaichinh;
  141.  
  142. import android.app.AlertDialog;
  143. import android.content.DialogInterface;
  144. import android.content.Intent;
  145. import android.database.Cursor;
  146. import android.graphics.Color;
  147. import android.graphics.Typeface;
  148. import android.os.Bundle;
  149. import android.support.design.widget.FloatingActionButton;
  150. import android.support.design.widget.Snackbar;
  151. import android.support.v7.app.AppCompatActivity;
  152. import android.support.v7.widget.Toolbar;
  153. import android.view.View;
  154. import android.widget.Button;
  155. import android.widget.LinearLayout;
  156. import android.widget.ListView;
  157. import android.widget.SimpleCursorAdapter;
  158. import android.widget.TableLayout;
  159. import android.widget.TableRow;
  160. import android.widget.TextView;
  161. import android.widget.TableRow.LayoutParams;
  162. import android.widget.Toast;
  163.  
  164. public class InsertFamilyMember extends AppCompatActivity {
  165. Button btnResetInsertFamilyMember, btnSubmitInsertFamilyMember, btnCancelInsertFamilyMember, btnCompleteInsertFamilyMember;
  166. TextView editTextNameInsertFamilyMember, editTextAgeInsertFamilyMember;
  167. DatabaseHelper db;
  168. SimpleCursorAdapter dataAdapter;
  169. private static final int REQUEST_CODE = 10;
  170. Intent data;
  171.  
  172. @Override
  173. protected void onCreate(Bundle savedInstanceState) {
  174. super.onCreate(savedInstanceState);
  175. setContentView(R.layout.activity_insert_family_member);
  176. Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
  177. setSupportActionBar(toolbar);
  178. getSupportActionBar().setTitle("Insert Family Member");
  179.  
  180. btnSubmitInsertFamilyMember = (Button) findViewById(R.id.button_submitInsertFamilyMember);
  181. btnResetInsertFamilyMember = (Button) findViewById(R.id.button_resetInsertFamilyMember);
  182. btnCancelInsertFamilyMember = (Button) findViewById(R.id.button_cancelInsertFamilyMember);
  183. btnCompleteInsertFamilyMember = (Button) findViewById(R.id.button_completeInsertFamilyMember);
  184. editTextNameInsertFamilyMember = (TextView) findViewById(R.id.editText_nameInsertFamilyMember);
  185. editTextAgeInsertFamilyMember = (TextView) findViewById(R.id.editText_ageInsertFamilyMember);
  186.  
  187. db = new DatabaseHelper(this);
  188. FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
  189. fab.setOnClickListener(new View.OnClickListener() {
  190. @Override
  191. public void onClick(View view) {
  192. Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
  193. .setAction("Action", null).show();
  194. }
  195. });
  196.  
  197. Bundle extras = getIntent().getExtras();
  198. final String idUser = extras.getString("IdUser");
  199. addDataListView();
  200. addFamilyMember(idUser);
  201. completeFamilyMember();
  202. cancelFamilyMember();
  203. resetFamilyMember();
  204. }
  205.  
  206. public void addDataListView(){
  207. Cursor cursor = db.getDataTableMemberFamily();
  208. String form[] = new String []{db.KEY_NAME, db.KEY_AGE};
  209. int to[] = new int[] {R.id.textView_itemNameInsertFamilyMember, R.id.textView_itemAgeInsertFamilyMember};
  210. dataAdapter = new SimpleCursorAdapter(this, R.layout.item_memberfamily, cursor, form, to, 0);
  211. ListView listViewMemberFamily = (ListView) findViewById(R.id.listView_FamilyMember);
  212. listViewMemberFamily.setAdapter(dataAdapter);
  213. }
  214.  
  215. public void completeFamilyMember(){
  216. btnCompleteInsertFamilyMember.setOnClickListener(
  217. new View.OnClickListener() {
  218.  
  219. @Override
  220. public void onClick(View v) {
  221. confirmDialog();
  222. }
  223. }
  224. );
  225. }
  226.  
  227. public void resetFamilyMember(){
  228. btnResetInsertFamilyMember.setOnClickListener(
  229. new View.OnClickListener(){
  230.  
  231. @Override
  232. public void onClick(View v) {
  233. editTextNameInsertFamilyMember.setText("");
  234. editTextAgeInsertFamilyMember.setText("");
  235. }
  236. }
  237. );
  238. }
  239.  
  240. public void cancelFamilyMember(){
  241. btnCancelInsertFamilyMember.setOnClickListener(
  242. new View.OnClickListener(){
  243.  
  244. @Override
  245. public void onClick(View v) {
  246. doOpenLogin();
  247. }
  248. }
  249. );
  250. }
  251.  
  252. public void addFamilyMember(final String idFamily){
  253. btnSubmitInsertFamilyMember.setOnClickListener(
  254. new View.OnClickListener() {
  255.  
  256. @Override
  257. public void onClick(View v) {
  258. String name, age;
  259. int temp = 0;
  260. name = editTextNameInsertFamilyMember.getText().toString();
  261. age = editTextAgeInsertFamilyMember.getText().toString();
  262. Cursor res = db.getDataTableMemberFamily();
  263. while (res.moveToNext()) {
  264. if (res.getString(2).equals(name)) {
  265. temp = 1;
  266. }
  267. }
  268.  
  269. if (temp == 1) {
  270. Toast.makeText(InsertFamilyMember.this, "This member is available", Toast.LENGTH_LONG).show();
  271. editTextNameInsertFamilyMember.setText("");
  272. editTextAgeInsertFamilyMember.setText("");
  273. } else {
  274. long isInserted = db.insertMemberFamilyTable(idFamily, name, age);
  275. if (isInserted == -1) {
  276. Toast.makeText(InsertFamilyMember.this, "Insert Unsuccessful", Toast.LENGTH_LONG).show();
  277. } else {
  278. Toast.makeText(InsertFamilyMember.this, "Insert Successful", Toast.LENGTH_LONG).show();
  279. }
  280. }
  281. addDataListView();
  282. }
  283. }
  284. );
  285. }
  286.  
  287. private void confirmDialog() {
  288. AlertDialog.Builder builder = new AlertDialog.Builder(this);
  289.  
  290. builder
  291. .setMessage("Are you sure?")
  292. .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
  293. @Override
  294. public void onClick(DialogInterface dialog, int id) {
  295. Cursor res = db.getDataTableMemberFamily();
  296. Cursor res1 = db.getDataTableUser();
  297.  
  298. Bundle extras = getIntent().getExtras();
  299. String idFamily = extras.getString("IdUser");
  300. long id_User = 0;
  301. String idUserSend = null;
  302. String username = null;
  303. String password = null;
  304. String question = null;
  305. String answer = null;
  306. String totalMoney = null;
  307. String insertMemberStatus = null;
  308. String insertTypeNoteStatus = null;
  309. String insertTotalMoneyStatus = null;
  310. while (res1.moveToNext()){
  311. String idUser = res1.getString(0);
  312. if(idUser.equals(idFamily)){
  313. id_User = Long.parseLong(idUser);
  314. username = res1.getString(1);
  315. password = res1.getString(2);
  316. question = res1.getString(3);
  317. answer = res1.getString(4);
  318. totalMoney = res1.getString(5);
  319. insertMemberStatus = "Complete";
  320. insertTypeNoteStatus = res1.getString(7);
  321. insertTotalMoneyStatus = res1.getString(8);
  322. idUserSend = idUser;
  323. break;
  324. }
  325. }
  326. long isUpdated = db.updateUserTable(id_User, username, password, question, answer, totalMoney, insertMemberStatus, insertTypeNoteStatus, insertTotalMoneyStatus);
  327. if (isUpdated == -1) {
  328. Toast.makeText(InsertFamilyMember.this, "Update Unsuccessful", Toast.LENGTH_LONG).show();
  329. } else {
  330. Toast.makeText(InsertFamilyMember.this, "Update Successful", Toast.LENGTH_LONG).show();
  331. }
  332. // Bundle bundle = data.getExtras();
  333. // User user = bundle.getParcelable("User");
  334. doOpenInsertTotalMoney(idUserSend);
  335. }
  336. })
  337. .setNegativeButton("No", new DialogInterface.OnClickListener() {
  338. @Override
  339. public void onClick(DialogInterface dialog, int id) {
  340. dialog.cancel();
  341. }
  342. })
  343. .show();
  344. }
  345.  
  346. public void doOpenLogin(){
  347. Intent intent = new Intent(this, MainActivity.class);
  348. startActivity(intent);
  349. }
  350.  
  351. public void doOpenInsertTotalMoney(String id){
  352. Intent intent = new Intent(this, InsertTotalMoney.class);
  353. intent.putExtra("idUser", id);
  354. startActivityForResult(intent, REQUEST_CODE);
  355. // Bundle b = new Bundle();
  356. // b.putParcelable("User", user);
  357. // intent.putExtras(b);
  358. // startActivityForResult(intent, REQUEST_CODE);
  359. }
  360. }
  361.  
  362. import android.app.AlertDialog;
  363. import android.content.DialogInterface;
  364. import android.content.Intent;
  365. import android.database.Cursor;
  366. import android.os.Bundle;
  367. import android.provider.ContactsContract;
  368. import android.support.design.widget.FloatingActionButton;
  369. import android.support.design.widget.Snackbar;
  370. import android.support.v7.app.AppCompatActivity;
  371. import android.support.v7.widget.Toolbar;
  372. import android.view.View;
  373. import android.widget.Button;
  374. import android.widget.EditText;
  375. import android.widget.Toast;
  376.  
  377. public class InsertTotalMoney extends AppCompatActivity {
  378.  
  379. Button btnSubmitInsertTotalMoney, btnCancelInsertTotalMoney;
  380. EditText editTextInsertTotalMoney;
  381. DatabaseHelper db;
  382. private static final int REQUEST_CODE = 10;
  383.  
  384. @Override
  385. protected void onCreate(Bundle savedInstanceState) {
  386. super.onCreate(savedInstanceState);
  387. setContentView(R.layout.activity_insert_total_money);
  388. Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
  389. setSupportActionBar(toolbar);
  390.  
  391. FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
  392. fab.setOnClickListener(new View.OnClickListener() {
  393. @Override
  394. public void onClick(View view) {
  395. Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
  396. .setAction("Action", null).show();
  397. }
  398. });
  399.  
  400. btnSubmitInsertTotalMoney = (Button) findViewById(R.id.btn_submitInsertTotalMoney);
  401. btnCancelInsertTotalMoney = (Button) findViewById(R.id.btn_cancelInsertTotalMoney);
  402. editTextInsertTotalMoney = (EditText) findViewById(R.id.editText_insertTotalMoney);
  403. doOpenInsertFamilyMember();
  404. addTotalMoney();
  405. }
  406.  
  407. public void doOpenInsertFamilyMember(){
  408. btnCancelInsertTotalMoney.setOnClickListener(
  409. new View.OnClickListener(){
  410.  
  411. @Override
  412. public void onClick(View v) {
  413. openInsertFamilyMember();
  414. }
  415. }
  416. );
  417. }
  418.  
  419. public void addTotalMoney(){
  420. btnSubmitInsertTotalMoney.setOnClickListener(
  421. new View.OnClickListener(){
  422.  
  423. @Override
  424. public void onClick(View v) {
  425. confirmDialog();
  426. }
  427. }
  428. );
  429. }
  430.  
  431. private void confirmDialog() {
  432. AlertDialog.Builder builder = new AlertDialog.Builder(this);
  433.  
  434. builder
  435. .setMessage("Are you sure?")
  436. .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
  437. @Override
  438. public void onClick(DialogInterface dialog, int id) {
  439.  
  440. long id_User = 0;
  441. String idUserSend = null;
  442. String username = null;
  443. String password = null;
  444. String question = null;
  445. String answer = null;
  446. String totalMoney = null;
  447. String insertMemberStatus = null;
  448. String insertTypeNoteStatus = null;
  449. String insertTotalMoneyStatus = null;
  450.  
  451. Cursor res = db.getDataTableUser();
  452. Bundle extras = getIntent().getExtras();
  453. String idUser = extras.getString("idUser");
  454.  
  455. while (res.moveToNext()){
  456. if(idUser.equals(res.getString(0))){
  457. id_User = Long.parseLong(idUser);
  458. username = res.getString(1);
  459. password = res.getString(2);
  460. question = res.getString(3);
  461. answer = res.getString(4);
  462. totalMoney = editTextInsertTotalMoney.getText().toString();
  463. insertMemberStatus = res.getString(6);
  464. insertTypeNoteStatus = res.getString(7);
  465. insertTotalMoneyStatus = "Complete";
  466. idUserSend = idUser;
  467. break;
  468. }
  469. }
  470. long isUpdated = db.updateUserTable(id_User, username, password, question, answer, totalMoney, insertMemberStatus, insertTypeNoteStatus, insertTotalMoneyStatus);
  471. if (isUpdated == -1) {
  472. Toast.makeText(InsertTotalMoney.this, "Update Unsuccessful", Toast.LENGTH_LONG).show();
  473. } else {
  474. Toast.makeText(InsertTotalMoney.this, "Update Successful", Toast.LENGTH_LONG).show();
  475. }
  476. doOpenInsertTypeNotes(idUserSend);
  477. }
  478. })
  479. .setNegativeButton("No", new DialogInterface.OnClickListener() {
  480. @Override
  481. public void onClick(DialogInterface dialog, int id) {
  482. dialog.cancel();
  483. }
  484. })
  485. .show();
  486. }
  487.  
  488. public void openInsertFamilyMember(){
  489. Intent intent = new Intent(this, InsertFamilyMember.class);
  490. startActivity(intent);
  491. }
  492.  
  493. public void doOpenInsertTypeNotes(String s){
  494. Intent intent = new Intent(this, InsertTypeNotes.class);
  495. intent.putExtra("idUser", s);
  496. startActivityForResult(intent, REQUEST_CODE);
  497. }
  498.  
  499. }
  500.  
  501. 01-22 01:38:31.679 1331-1331/? E/AndroidRuntime: FATAL EXCEPTION: main
  502. Process: com.example.khuatduytan.quanlytaichinh, PID: 1331
  503. java.lang.NullPointerException
  504. at com.example.khuatduytan.quanlytaichinh.InsertTotalMoney$5.onClick(InsertTotalMoney.java:92)
  505. at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:166)
  506. at android.os.Handler.dispatchMessage(Handler.java:102)
  507. at android.os.Looper.loop(Looper.java:136)
  508. at android.app.ActivityThread.main(ActivityThread.java:5001)
  509. at java.lang.reflect.Method.invokeNative(Native Method)
  510. at java.lang.reflect.Method.invoke(Method.java:515)
  511. at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
  512. at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
  513. at dalvik.system.NativeStart.main(Native Method)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement