how to make offline android app that saves data on sqlite and send data to mysql when there is internet automatically -


i working on android application register members, save 50 records local database transfer records mysql database on server , delete records on local database batch of registration. specific problems.

(1)how camera image imageview save sqlite? (2)how make edittext date picker date of birth , save sqlite? (3)how sense internet connection , transfer sqlite data mysql when records reach 50? (4)how delete sqlite data when transferred mysql?

below activity registration package com.example.administrator.user_enrollment;

private static final int camera_request = 1888; private edittext edittext1; private edittext edittext2; private edittext edittext3; private edittext edittext4; private edittext edittext5; private edittext edittext6; private edittext edittext7; private edittext edittext8; private edittext edittext9; private edittext edittext10; private edittext edittext11; private button button1; private button button2; private button button3; private radiogroup radiodisability; private radiobutton radioyes; private radiobutton radiono; private radiogroup radiogender; private radiobutton radiomale; private radiobutton radiofemale; private spinner spinner1; private spinner spinner2; private sqlitedatabase db; private imageview picture;   string fitness;   string gender; @override protected void oncreate(bundle savedinstancestate) {     super.oncreate(savedinstancestate);     setcontentview(r.layout.reg);      createdatabase();      edittext1 = (edittext) findviewbyid(r.id.edittext1);     edittext2 = (edittext) findviewbyid(r.id.edittext2);     edittext3 = (edittext) findviewbyid(r.id.edittext3);     edittext4 = (edittext) findviewbyid(r.id.edittext4);     edittext5 = (edittext) findviewbyid(r.id.edittext5);     edittext6 = (edittext) findviewbyid(r.id.edittext6);     edittext7 = (edittext) findviewbyid(r.id.edittext7);     edittext8 = (edittext) findviewbyid(r.id.edittext8);     edittext9 = (edittext) findviewbyid(r.id.edittext9);     edittext10 = (edittext) findviewbyid(r.id.edittext10);     edittext11 = (edittext) findviewbyid(r.id.edittext11);     radiodisability = (radiogroup) findviewbyid(r.id.radiodisability);     radiono = (radiobutton) findviewbyid(r.id.radiono);     radioyes = (radiobutton) findviewbyid(r.id.radioyes);     radiogender = (radiogroup) findviewbyid(r.id.radiogender);     radiomale = (radiobutton) findviewbyid(r.id.radiomale);     radiofemale = (radiobutton) findviewbyid(r.id.radiofemale);     picture = (imageview) findviewbyid(r.id.picture) ;     spinner1 = (spinner) findviewbyid(r.id.spinner1);     spinner2 = (spinner) findviewbyid(r.id.spinner2);     button1 = (button) findviewbyid(r.id.button1);     button2 = (button) findviewbyid(r.id.button2);     button3 = (button) findviewbyid(r.id.button3);     button1.setonclicklistener(this);     button2.setonclicklistener(this);     button3.setonclicklistener(this);    }  public void takeimagefromcamera(view view) {     intent cameraintent = new intent(android.provider.mediastore.action_image_capture);     startactivityforresult(cameraintent, camera_request);  }   protected void onactivityresult(int requestcode, int resultcode, intent data) {     if (requestcode == camera_request && resultcode == result_ok) {         bitmap mphoto = (bitmap) data.getextras().get("data");         picture.setimagebitmap(mphoto);     } }  protected void createdatabase(){     db=openorcreatedatabase("aecdporg_new", context.mode_private, null);     db.execsql("create table if not exists bio(id integer primary key autoincrement not null, f_name varchar,m_name varchar,l_name varchar,dob date,fitness varchar,occupation varchar,religion varchar,gender varchar,phone varchar,status varchar,hhname varchar,ward varchar,village varchar,district varchar,lga varchar");     } protected void insertintodb() {     string f_name = edittext1.gettext().tostring().trim();     string m_name = edittext2.gettext().tostring().trim();     string l_name = edittext3.gettext().tostring().trim();     string dob = edittext4.gettext().tostring().trim();      int selectedid = radiodisability.getcheckedradiobuttonid();     radiono = (radiobutton) findviewbyid(selectedid);     radioyes = (radiobutton) findviewbyid(selectedid);     if (selectedid == radiono.getid()) {           fitness = "not fit";     }     else     {             fitness = "fit";     }       string religion = spinner1.getselecteditem().tostring().trim();     string occupation = edittext5.gettext().tostring().trim();     int selectedid2 = radiogender.getcheckedradiobuttonid();     radiomale = (radiobutton) findviewbyid(selectedid2);     radiofemale = (radiobutton) findviewbyid(selectedid2);     if(selectedid2== radiomale.getid()){         gender ="male";     }     else     {         gender = "female";     }      string phone = edittext6.gettext().tostring().trim();     string status = spinner2.getselecteditem().tostring().trim();     string household_name = edittext7.gettext().tostring().trim();     string lga = edittext7.gettext().tostring().trim();     string district = edittext8.gettext().tostring().trim();     string village = edittext9.gettext().tostring().trim();     string ward = edittext10.gettext().tostring().trim();     string photo = edittext1.gettext().tostring().trim();      if(f_name.equals("") || l_name.equals("") || dob.equals("") || fitness.equals("") || religion.equals("") || occupation.equals("") || gender.equals("") || phone.equals("") || status.equals("") || household_name.equals("")|| lga.equals("") || district.equals("") || village.equals("") || ward.equals("") || photo.equals("")){         toast.maketext(getapplicationcontext(),"please fill fields", toast.length_long).show();         return;         }      string query = "insert bio (f_name,m_name,l_name,dob,fitness,religion,occupation,gender,phone,status,hhname,lga,district,village,ward,photo) values('"+f_name+"', '"+m_name+"', '"+l_name+"', '"+dob+"', '"+fitness+"', '"+religion+"','"+occupation+"', '"+gender+"', '"+phone+"', '"+status+"','"+household_name+"', '"+dob+"', '"+lga+"', ''"+district+"', '"+village+"', '"+ward+"', '"+photo+"');";     db.execsql(query);     toast.maketext(getapplicationcontext(),"saved successfully", toast.length_long).show();     } @override public boolean oncreateoptionsmenu(menu menu) {     // inflate menu_main; adds items action bar if present.     getmenuinflater().inflate(r.menu.menu_main, menu);     return true;     } @override public boolean onoptionsitemselected(menuitem item) {     // handle action bar item clicks here. action bar     // automatically handle clicks on home/up button, long     // specify parent activity in androidmanifest.xml.     int id = item.getitemid();     //noinspection simplifiableifstatement     if (id == r.id.action_settings) {         return true;         }     return super.onoptionsitemselected(item);     } @override public void onclick(view v) {     if(v == button2){         insertintodb();         }     else if (v == button1){         takeimagefromcamera(picture);     }     } 

}

create broadcastreciever check whether connected internet or not. checking internet connection can use connectivitymanager. public boolean isinternetconnected() {

    connectivitymanager cmanager = (connectivitymanager) context.getsystemservice(context             .connectivity_service);      if (cmanager != null) {          networkinfo networkinfos = cmanager.getactivenetworkinfo();         if (networkinfos != null) {              if(networkinfos.gettype() == connectivitymanager.type_wifi){                 // wifi connected             }             else if(networkinfos.gettype() == connectivitymanager.type_mobile)             {                 // mobile internet connected             }             return true;          }     }     return false; } 

ans 1: saving image file in sqlite, should convert bitmap in byte[] , save database.

ans 2: can show datepickerdialog on textview onclicklistner , returned value in string , store in database.

ans 3: can add boundation when specific number of entries entered in database. can bound user have internet connection when entry reaches 50.

ans 4: add boolean in database true when data synchronized , false when not synchronized, according need. delete synchronized data table.


Comments

Popular posts from this blog

php - How to add and update images or image url in Volusion using Volusion API -

javascript - IE9 error '$'is not defined -