· 10 years ago · May 16, 2016, 08:54 PM
105-16 15:39:20.912 2020-2020/chintan.khetiya.sqlite.cursor I/art: Not late-enabling -Xcheck:jni (already on)
205-16 15:39:21.084 2020-2020/chintan.khetiya.sqlite.cursor E/CursorWindow: Failed to read row 0, column 4 from a CursorWindow which has 1 rows, 4 columns.
305-16 15:39:21.084 2020-2020/chintan.khetiya.sqlite.cursor E/all_contact: java.lang.IllegalStateException: Couldn't read row 0, col 4 from CursorWindow. Make sure the Cursor is initialized correctly before accessing data from it.
405-16 15:39:21.090 2020-2020/chintan.khetiya.sqlite.cursor E/CursorWindow: Failed to read row 0, column 4 from a CursorWindow which has 1 rows, 4 columns.
505-16 15:39:21.090 2020-2020/chintan.khetiya.sqlite.cursor E/all_contact: java.lang.IllegalStateException: Couldn't read row 0, col 4 from CursorWindow. Make sure the Cursor is initialized correctly before accessing data from it.
605-16 15:39:21.185 2020-2036/chintan.khetiya.sqlite.cursor D/OpenGLRenderer: Use EGL_SWAP_BEHAVIOR_PRESERVED: true
705-16 15:39:21.197 2020-2020/chintan.khetiya.sqlite.cursor D/Atlas: Validating map...
805-16 15:39:21.324 2020-2036/chintan.khetiya.sqlite.cursor I/OpenGLRenderer: Initialized EGL, version 1.4
905-16 15:39:21.354 2020-2036/chintan.khetiya.sqlite.cursor D/OpenGLRenderer: Enabling debug mode 0
1005-16 15:39:21.394 2020-2036/chintan.khetiya.sqlite.cursor W/EGL_emulation: eglSurfaceAttrib not implemented
1105-16 15:39:21.394 2020-2036/chintan.khetiya.sqlite.cursor W/OpenGLRenderer: Failed to set EGL_SWAP_BEHAVIOR on surface 0xb431ef60, error=EGL_SUCCESS
1205-16 15:39:35.584 2020-2036/chintan.khetiya.sqlite.cursor W/EGL_emulation: eglSurfaceAttrib not implemented
1305-16 15:39:35.584 2020-2036/chintan.khetiya.sqlite.cursor W/OpenGLRenderer: Failed to set EGL_SWAP_BEHAVIOR on surface 0xb43f96c0, error=EGL_SUCCESS
1405-16 15:39:39.678 2020-2036/chintan.khetiya.sqlite.cursor W/EGL_emulation: eglSurfaceAttrib not implemented
1505-16 15:39:39.678 2020-2036/chintan.khetiya.sqlite.cursor W/OpenGLRenderer: Failed to set EGL_SWAP_BEHAVIOR on surface 0xa50049e0, error=EGL_SUCCESS
1605-16 15:39:43.404 2020-2036/chintan.khetiya.sqlite.cursor W/EGL_emulation: eglSurfaceAttrib not implemented
1705-16 15:39:43.404 2020-2036/chintan.khetiya.sqlite.cursor W/OpenGLRenderer: Failed to set EGL_SWAP_BEHAVIOR on surface 0xa5005f80, error=EGL_SUCCESS
1805-16 15:39:50.119 2020-2020/chintan.khetiya.sqlite.cursor E/SQLiteLog: (1) table contacts has no column named password
1905-16 15:39:50.119 2020-2020/chintan.khetiya.sqlite.cursor E/SQLiteDatabase: Error inserting email=hg@m.b name=ghh password=dddd phone_number=(888) 888-88
20 android.database.sqlite.SQLiteException: table contacts has no column named password (code 1): , while compiling: INSERT INTO contacts(email,name,password,phone_number) VALUES (?,?,?,?)
21 at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
22 at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:889)
23 at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:500)
24 at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
25 at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
26 at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)
27 at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1469)
28 at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1341)
29 at chintan.khetiya.sqlite.cursor.DatabaseHandler.Add_Contact(DatabaseHandler.java:68)
30 at chintan.khetiya.sqlite.cursor.Add_Update_User$5.onClick(Add_Update_User.java:154)
31 at android.view.View.performClick(View.java:4780)
32 at android.view.View$PerformClick.run(View.java:19866)
33 at android.os.Handler.handleCallback(Handler.java:739)
34 at android.os.Handler.dispatchMessage(Handler.java:95)
35 at android.os.Looper.loop(Looper.java:135)
36 at android.app.ActivityThread.main(ActivityThread.java:5254)
37 at java.lang.reflect.Method.invoke(Native Method)
38 at java.lang.reflect.Method.invoke(Method.java:372)
39 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
40 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
4105-16 15:39:51.380 2020-2020/chintan.khetiya.sqlite.cursor E/CursorWindow: Failed to read row 0, column 4 from a CursorWindow which has 1 rows, 4 columns.
4205-16 15:39:51.380 2020-2020/chintan.khetiya.sqlite.cursor E/all_contact: java.lang.IllegalStateException: Couldn't read row 0, col 4 from CursorWindow. Make sure the Cursor is initialized correctly before accessing data from it.
4305-16 15:39:51.393 2020-2020/chintan.khetiya.sqlite.cursor E/CursorWindow: Failed to read row 0, column 4 from a CursorWindow which has 1 rows, 4 columns.
4405-16 15:39:51.393 2020-2020/chintan.khetiya.sqlite.cursor E/all_contact: java.lang.IllegalStateException: Couldn't read row 0, col 4 from CursorWindow. Make sure the Cursor is initialized correctly before accessing data from it.
4505-16 15:39:51.454 2020-2036/chintan.khetiya.sqlite.cursor W/EGL_emulation: eglSurfaceAttrib not implemented
4605-16 15:39:51.454 2020-2036/chintan.khetiya.sqlite.cursor W/OpenGLRenderer: Failed to set EGL_SWAP_BEHAVIOR on surface 0xa501c080, error=EGL_SUCCESS
47
48package chintan.khetiya.sqlite.cursor;
49
50import java.util.ArrayList;
51
52import android.content.ContentValues;
53import android.content.Context;
54import android.database.Cursor;
55import android.database.sqlite.SQLiteDatabase;
56import android.database.sqlite.SQLiteOpenHelper;
57import android.util.Log;
58
59public class DatabaseHandler extends SQLiteOpenHelper {
60
61// All Static variables
62// Database Version
63private static final int DATABASE_VERSION = 1;
64
65// Database Name
66private static final String DATABASE_NAME = "contactsManager";
67
68// Contacts table name
69private static final String TABLE_CONTACTS = "contacts";
70
71// Contacts Table Columns names
72private static final String KEY_ID = "id";
73private static final String KEY_NAME = "name";
74private static final String KEY_PH_NO = "phone_number";
75private static final String KEY_EMAIL = "email";
76private static final String KEY_PWD = "password";
77private final ArrayList<Contact> contact_list = new ArrayList<Contact>();
78
79public DatabaseHandler(Context context) {
80super(context, DATABASE_NAME, null, DATABASE_VERSION);
81}
82
83// Creating Tables
84@Override
85public void onCreate(SQLiteDatabase db) {
86String CREATE_CONTACTS_TABLE = "CREATE TABLE " + TABLE_CONTACTS + "("
87 + KEY_ID + " INTEGER PRIMARY KEY," + KEY_NAME + " TEXT,"
88 + KEY_PH_NO + " TEXT," + KEY_EMAIL + " TEXT," + KEY_PWD + " TEXT"+ ")";
89db.execSQL(CREATE_CONTACTS_TABLE);
90}
91
92// Upgrading database
93@Override
94public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
95// Drop older table if existed
96db.execSQL("DROP TABLE IF EXISTS " + TABLE_CONTACTS);
97
98// Create tables again
99onCreate(db);
100}
101
102/**
103 * All CRUD(Create, Read, Update, Delete) Operations
104 */
105
106// Adding new contact
107public void Add_Contact(Contact contact) {
108SQLiteDatabase db = this.getWritableDatabase();
109ContentValues values = new ContentValues();
110values.put(KEY_NAME, contact.getName()); // Contact Name
111values.put(KEY_PH_NO, contact.getPhoneNumber()); // Contact Phone
112values.put(KEY_EMAIL, contact.getEmail()); // Contact Email
113values.put(KEY_PWD, contact.getPassword());// Contact PWD
114// Inserting Row
115db.insert(TABLE_CONTACTS, null, values);
116db.close(); // Closing database connection
117}
118
119// Getting single contact
120Contact Get_Contact(int id) {
121SQLiteDatabase db = this.getReadableDatabase();
122
123Cursor cursor = db.query(TABLE_CONTACTS, new String[] { KEY_ID,
124 KEY_NAME, KEY_PH_NO, KEY_EMAIL, KEY_PWD }, KEY_ID + "=?",
125 new String[] { String.valueOf(id) }, null, null, null, null);
126if (cursor != null)
127 cursor.moveToFirst();
128
129Contact contact = new Contact(Integer.parseInt(cursor.getString(0)),
130 cursor.getString(1), cursor.getString(2), cursor.getString(3), cursor.getString(4));
131// return contact
132cursor.close();
133db.close();
134
135return contact;
136}
137
138// Getting All Contacts
139public ArrayList<Contact> Get_Contacts() {
140try {
141 contact_list.clear();
142
143 // Select All Query
144 String selectQuery = "SELECT * FROM " + TABLE_CONTACTS;
145
146 SQLiteDatabase db = this.getWritableDatabase();
147 Cursor cursor = db.rawQuery(selectQuery, null);
148
149 // looping through all rows and adding to list
150 if (cursor.moveToFirst()) {
151 do {
152 Contact contact = new Contact();
153 contact.setID(Integer.parseInt(cursor.getString(0)));
154 contact.setName(cursor.getString(1));
155 contact.setPhoneNumber(cursor.getString(2));
156 contact.setEmail(cursor.getString(3));
157 contact.setPassword(cursor.getString(4));
158 // Adding contact to list
159 contact_list.add(contact);
160 } while (cursor.moveToNext());
161 }
162
163 // return contact list
164 cursor.close();
165 db.close();
166 return contact_list;
167} catch (Exception e) {
168 // TODO: handle exception
169 Log.e("all_contact", "" + e);
170}
171
172return contact_list;
173}
174
175// Updating single contact
176public int Update_Contact(Contact contact) {
177SQLiteDatabase db = this.getWritableDatabase();
178
179ContentValues values = new ContentValues();
180values.put(KEY_NAME, contact.getName());
181values.put(KEY_PH_NO, contact.getPhoneNumber());
182values.put(KEY_EMAIL, contact.getEmail());
183values.put(KEY_PWD, contact.getPassword());
184
185// updating row
186return db.update(TABLE_CONTACTS, values, KEY_ID + " = ?",
187 new String[] { String.valueOf(contact.getID()) });
188}
189
190// Deleting single contact
191public void Delete_Contact(int id) {
192SQLiteDatabase db = this.getWritableDatabase();
193db.delete(TABLE_CONTACTS, KEY_ID + " = ?",
194 new String[] { String.valueOf(id) });
195db.close();
196}
197
198// Getting contacts Count
199public int Get_Total_Contacts() {
200String countQuery = "SELECT * FROM " + TABLE_CONTACTS;
201SQLiteDatabase db = this.getReadableDatabase();
202Cursor cursor = db.rawQuery(countQuery, null);
203cursor.close();
204
205// return count
206return cursor.getCount();
207}
208
209}
210
211package chintan.khetiya.sqlite.cursor;
212
213import android.app.Activity;
214import android.content.Intent;
215import android.os.Bundle;
216import android.telephony.PhoneNumberFormattingTextWatcher;
217import android.text.Editable;
218import android.text.TextWatcher;
219import android.view.View;
220import android.widget.Button;
221import android.widget.EditText;
222import android.widget.LinearLayout;
223import android.widget.Toast;
224
225public class Add_Update_User extends Activity {
226EditText add_name, add_mobile, add_email, add_pwd;
227Button add_save_btn, add_view_all, update_btn, update_view_all;
228LinearLayout add_view, update_view;
229String valid_mob_number = null, valid_email = null, valid_name = null, valid_pwd = null,
230 Toast_msg = null, valid_user_id = "";
231int USER_ID;
232DatabaseHandler dbHandler = new DatabaseHandler(this);
233
234@Override
235protected void onCreate(Bundle savedInstanceState) {
236// TODO Auto-generated method stub
237super.onCreate(savedInstanceState);
238setContentView(R.layout.add_update_screen);
239
240// set screen
241Set_Add_Update_Screen();
242
243// set visibility of view as per calling activity
244String called_from = getIntent().getStringExtra("called");
245
246if (called_from.equalsIgnoreCase("add")) {
247 add_view.setVisibility(View.VISIBLE);
248 update_view.setVisibility(View.GONE);
249} else {
250
251 update_view.setVisibility(View.VISIBLE);
252 add_view.setVisibility(View.GONE);
253 USER_ID = Integer.parseInt(getIntent().getStringExtra("USER_ID"));
254
255 Contact c = dbHandler.Get_Contact(USER_ID);
256
257 add_name.setText(c.getName());
258 add_mobile.setText(c.getPhoneNumber());
259 add_email.setText(c.getEmail());
260 add_pwd.setText(c.getPassword());
261 // dbHandler.close();
262}
263add_mobile.addTextChangedListener(new TextWatcher() {
264
265 @Override
266 public void onTextChanged(CharSequence s, int start, int before,
267 int count) {
268 // TODO Auto-generated method stub
269
270 }
271
272 @Override
273 public void beforeTextChanged(CharSequence s, int start, int count,
274 int after) {
275 // TODO Auto-generated method stub
276
277 }
278
279 @Override
280 public void afterTextChanged(Editable s) {
281 // TODO Auto-generated method stub
282 // min lenth 10 and max lenth 12 (2 extra for - as per phone
283 // matcher format)
284 Is_Valid_Sign_Number_Validation(12, 12, add_mobile);
285 }
286});
287add_mobile
288 .addTextChangedListener(new PhoneNumberFormattingTextWatcher());
289
290add_email.addTextChangedListener(new TextWatcher() {
291
292 @Override
293 public void onTextChanged(CharSequence s, int start, int before,
294 int count) {
295 // TODO Auto-generated method stub
296
297 }
298
299 @Override
300 public void beforeTextChanged(CharSequence s, int start, int count,
301 int after) {
302 // TODO Auto-generated method stub
303
304 }
305
306 @Override
307 public void afterTextChanged(Editable s) {
308 // TODO Auto-generated method stub
309 Is_Valid_Email(add_email);
310 }
311});
312
313add_name.addTextChangedListener(new TextWatcher() {
314
315 @Override
316 public void onTextChanged(CharSequence s, int start, int before,
317 int count) {
318 // TODO Auto-generated method stub
319
320 }
321
322 @Override
323 public void beforeTextChanged(CharSequence s, int start, int count,
324 int after) {
325 // TODO Auto-generated method stub
326
327 }
328
329 @Override
330 public void afterTextChanged(Editable s) {
331 // TODO Auto-generated method stub
332 Is_Valid_Person_Name(add_name);
333 }
334});
335
336add_pwd.addTextChangedListener(new TextWatcher() {
337 @Override
338 public void beforeTextChanged(CharSequence s, int start, int count, int after) {
339
340 }
341
342 @Override
343 public void onTextChanged(CharSequence s, int start, int before, int count) {
344
345 }
346
347 @Override
348 public void afterTextChanged(Editable s) {
349 Is_Valid_Password(add_pwd);
350 }
351});
352
353add_save_btn.setOnClickListener(new View.OnClickListener() {
354
355 @Override
356 public void onClick(View v) {
357 // TODO Auto-generated method stub
358 // check the value state is null or not
359 if (valid_name != null && valid_mob_number != null
360 && valid_email != null && valid_pwd != null && valid_name.length() != 0
361 && valid_mob_number.length() != 0
362 && valid_email.length() != 0 && valid_pwd.length() != 0 ) {
363
364 dbHandler.Add_Contact(new Contact(valid_name,
365 valid_mob_number, valid_email, valid_pwd));
366 Toast_msg = "Data inserted successfully";
367 Show_Toast(Toast_msg);
368 Reset_Text();
369
370 }
371
372 }
373});
374
375update_btn.setOnClickListener(new View.OnClickListener() {
376
377 @Override
378 public void onClick(View v) {
379 // TODO Auto-generated method stub
380
381 valid_name = add_name.getText().toString();
382 valid_mob_number = add_mobile.getText().toString();
383 valid_email = add_email.getText().toString();
384 valid_pwd = add_pwd.getText().toString();
385
386 // check the value state is null or not
387 if (valid_name != null && valid_mob_number != null
388 && valid_email != null && valid_pwd != null && valid_name.length() != 0
389 && valid_mob_number.length() != 0
390 && valid_email.length() != 0 && valid_pwd.length() != 0) {
391
392 dbHandler.Update_Contact(new Contact(USER_ID, valid_name,
393 valid_mob_number, valid_email, valid_pwd));
394 dbHandler.close();
395 Toast_msg = "Data Update successfully";
396 Show_Toast(Toast_msg);
397 Reset_Text();
398 } else {
399 Toast_msg = "Sorry Some Fields are missing.nPlease Fill up all.";
400 Show_Toast(Toast_msg);
401 }
402
403 }
404});
405update_view_all.setOnClickListener(new View.OnClickListener() {
406
407 @Override
408 public void onClick(View v) {
409 // TODO Auto-generated method stub
410 Intent view_user = new Intent(Add_Update_User.this,
411 Main_Screen.class);
412 view_user.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP
413 | Intent.FLAG_ACTIVITY_NEW_TASK);
414 startActivity(view_user);
415 finish();
416 }
417});
418
419add_view_all.setOnClickListener(new View.OnClickListener() {
420
421 @Override
422 public void onClick(View v) {
423 // TODO Auto-generated method stub
424 Intent view_user = new Intent(Add_Update_User.this,
425 Main_Screen.class);
426 view_user.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP
427 | Intent.FLAG_ACTIVITY_NEW_TASK);
428 startActivity(view_user);
429 finish();
430 }
431});
432
433}
434
435public void Set_Add_Update_Screen() {
436
437add_name = (EditText) findViewById(R.id.add_name);
438add_mobile = (EditText) findViewById(R.id.add_mobile);
439add_email = (EditText) findViewById(R.id.add_email);
440add_pwd = (EditText) findViewById(R.id.add_pwd);
441
442add_save_btn = (Button) findViewById(R.id.add_save_btn);
443update_btn = (Button) findViewById(R.id.update_btn);
444add_view_all = (Button) findViewById(R.id.add_view_all);
445update_view_all = (Button) findViewById(R.id.update_view_all);
446
447add_view = (LinearLayout) findViewById(R.id.add_view);
448update_view = (LinearLayout) findViewById(R.id.update_view);
449
450add_view.setVisibility(View.GONE);
451update_view.setVisibility(View.GONE);
452
453}
454
455public void Is_Valid_Sign_Number_Validation(int MinLen, int MaxLen,
456 EditText edt) throws NumberFormatException {
457if (edt.getText().toString().length() <= 0) {
458 edt.setError("Number Only");
459 valid_mob_number = null;
460} else if (edt.getText().toString().length() < MinLen) {
461 edt.setError("Minimum length " + MinLen);
462 valid_mob_number = null;
463
464} else if (edt.getText().toString().length() > MaxLen) {
465 edt.setError("Maximum length " + MaxLen);
466 valid_mob_number = null;
467
468} else {
469 valid_mob_number = edt.getText().toString();
470
471}
472
473} // END OF Edittext validation
474
475public void Is_Valid_Email(EditText edt) {
476if (edt.getText().toString() == null) {
477 edt.setError("Invalid Email Address");
478 valid_email = null;
479} else if (isEmailValid(edt.getText().toString()) == false) {
480 edt.setError("Invalid Email Address");
481 valid_email = null;
482} else {
483 valid_email = edt.getText().toString();
484}
485}
486
487boolean isEmailValid(CharSequence email) {
488return android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches();
489} // end of email matcher
490
491public void Is_Valid_Person_Name(EditText edt) throws NumberFormatException {
492if (edt.getText().toString().length() <= 0) {
493 edt.setError("Accept Alphabets Only.");
494 valid_name = null;
495} else if (!edt.getText().toString().matches("[a-zA-Z ]+")) {
496 edt.setError("Accept Alphabets Only.");
497 valid_name = null;
498} else {
499 valid_name = edt.getText().toString();
500}
501
502}
503
504public void Is_Valid_Password(EditText edt){
505 valid_pwd=edt.getText().toString();
506}
507
508public void Show_Toast(String msg) {
509Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_LONG).show();
510}
511
512public void Reset_Text() {
513
514add_name.getText().clear();
515add_mobile.getText().clear();
516add_email.getText().clear();
517 add_pwd.getText().clear();
518
519}
520
521}