· 9 years ago · Jan 24, 2017, 02:54 PM
1package com.homeexpress.db.datalistusingsqlite;
2
3import android.content.DialogInterface;
4import android.database.Cursor;
5import android.database.sqlite.SQLiteDatabase;
6import android.support.v7.app.AlertDialog;
7import android.support.v7.app.AppCompatActivity;
8import android.os.Bundle;
9import android.util.Log;
10import android.view.LayoutInflater;
11import android.view.View;
12import android.widget.Button;
13import android.widget.EditText;
14import android.widget.ListView;
15
16import java.util.ArrayList;
17
18public class MainActivity extends AppCompatActivity {
19 Button insert;
20 ListView list;
21 ArrayList<User> data = new ArrayList<>();
22 CustomListAdapter adapter;
23 String tableName = "personal_info";
24 int id;
25
26 @Override
27 protected void onCreate(Bundle savedInstanceState) {
28 super.onCreate(savedInstanceState);
29 setContentView(R.layout.activity_main);
30
31 createDatabase();
32
33 insert = (Button) findViewById(R.id.insert);
34 list = (ListView) findViewById(R.id.list);
35
36 adapter = new CustomListAdapter(getApplicationContext(), data);
37 list.setAdapter(adapter);
38
39 //Loads all data from the data base and updates the list view
40 loadData();
41
42 LayoutInflater inflater2 = LayoutInflater.from(MainActivity.this);
43 View view2 = inflater2.inflate(R.layout.list_layout, null);
44 //Button deleteData = (Button) view2.findViewById(R.id.delete);
45
46
47
48 insert.setOnClickListener(new View.OnClickListener() {
49 @Override
50 public void onClick(View v) {
51 LayoutInflater inflater = LayoutInflater.from(MainActivity.this);
52 View view = inflater.inflate(R.layout.alert_layout, null);
53
54 final EditText nameText = (EditText) view.findViewById(R.id.name);
55 final EditText numberText = (EditText) view.findViewById(R.id.contact);
56 Button insertButton = (Button) view.findViewById(R.id.alert_insert);
57 final AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
58
59 builder.setView(view);
60 AlertDialog dialog = builder.create();
61
62 insertButton.setOnClickListener(new View.OnClickListener() {
63 @Override
64 public void onClick(View v) {
65 String name = "";
66 String number = "";
67
68 name = nameText.getText().toString();
69 number = numberText.getText().toString();
70 insertData(name, number);
71 //gets the last row id from the database table
72 id = getCurrentRowId();
73 data.add(new User(id, name, number));
74 adapter.notifyDataSetChanged();
75 }
76 });
77
78 dialog.show();
79 }
80 });
81
82 }
83
84 private void createDatabase(){
85 SQLiteDatabase db = openOrCreateDatabase("DB", 0, null);
86 String create = "CREATE TABLE IF NOT EXISTS " + tableName + " (id INTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR, phone VARCHAR);";
87 db.execSQL(create);
88 db.close();
89 }
90
91 private void insertData(String name, String number){
92 SQLiteDatabase db = openOrCreateDatabase("DB", 0, null);
93 String insertQuery = "INSERT INTO " + tableName + " (name, phone) VALUES (\'" + name + "\', \'" + number + "\');";
94 Log.d("query", insertQuery);
95 db.execSQL(insertQuery);
96 db.close();
97 }
98
99 private void deleteData(int id){
100 SQLiteDatabase db = openOrCreateDatabase("DB", 0, null);
101 String deleteQuery = "DELETE FROM " + tableName + " WHERE id = " + id + ";";
102 db.execSQL(deleteQuery);
103 db.close();
104 }
105
106 private int getCurrentRowId(){
107 SQLiteDatabase db = openOrCreateDatabase("DB", 0, null);
108 String selectQuery = "SELECT * FROM " + tableName + ";";
109
110 Cursor cursor = db.rawQuery(selectQuery, null);
111 int id;
112
113 if(cursor.getCount() > 0){
114 cursor.moveToLast();
115 id = Integer.parseInt(cursor.getString(cursor.getColumnIndex("id")));
116 return id;
117 }else{
118 return -1;
119 }
120 }
121
122 private void loadData(){
123 SQLiteDatabase db = openOrCreateDatabase("DB", 0, null);
124 String selectQuery = "SELECT * FROM " + tableName + ";";
125
126 Cursor cursor = db.rawQuery(selectQuery, null);
127 if(cursor.getCount() > 0){
128 cursor.moveToFirst();
129 do{
130 int id = Integer.parseInt(cursor.getString(cursor.getColumnIndex("id")));
131 String name = cursor.getString(cursor.getColumnIndex("name"));
132 String number = cursor.getString(cursor.getColumnIndex("phone"));
133
134 data.add(new User(id, name, number));
135 }while(cursor.moveToNext());
136 adapter.notifyDataSetChanged();
137 }
138 }
139
140 public void deleteCheck(View v){
141
142 }
143}