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
Post a Comment