Saturday 15 August 2015

java - onActivityResult not respecting the RESULT_OK through IF condition -



java - onActivityResult not respecting the RESULT_OK through IF condition -

i'm getting firstconnection class mainactivity class baseline code:

intent intent = new intent(mainactivity.this,firstconnection.class) ; startactivityforresult(intent, request_code_initilization);

once activity of firstconnection class finished, utilize next code come mainactivity class :

intent returnintent = new intent(); setresult(result_ok, returnintent); finish();

then in mainactivity class utilize code:

public void onactivityresult(int requestcode, int resultcode, intent data) { if (requestcode == request_code_initilization) { if (resultcode == activity.result_ok) { // <= !! problem here !! // code } if (resultcode == result_canceled) { // code } } else super.onactivityresult(requestcode, resultcode, data); }

my problem : when come mainactivity class resultcode == result_ok, there no way, code doesn't go within of if condition despite status true!

i don't understand, nad i'm sure resultcode == result_ok because have checked in debug mode.

is there somobody having similar issue?

thanks!

update

i post both class content.

mainactivity

public class mainactivity extends activity implements namesadapterlistener{ private int request_code_initilization = 2 ; private list<titlelist> listexisting ; private sqlitehelper db ; private textview titlev; private checkbox checkpartage; private checkbox checklocal; private edittext input; private linearlayout layout; private layoutinflater minflater; @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); // boolean resultinitilization = appinitialization(); // if (resultinitilization == false){ // intent intent = new intent(mainactivity.this,firstconnection.class) ; // startactivityforresult(intent, request_code_initilization); // } /** * opening of database */ db = new sqlitehelper( ) ; /** * initialization of local database 1st time of utilize */ db.initialized(); if (!db.getinitialized()){ db.setinitialized(); intent intent = new intent(mainactivity.this,firstconnection.class) ; startactivityforresult(intent, request_code_initilization); } else{ /** * name of existing lists */ listexisting = db.gettitlesqlitehelper(); /** * create arrayadapter list's names */ arrayadapterlistnames listexistingadapter = new arrayadapterlistnames(this,listexisting) ; /** * ecoute des évènements sur votre liste */ listexistingadapter.addlistener(this); /** * 1) implement listview containing list of textview * 2) registerforcontextmenu => display pop-up menu after long click on * content of listview (textview) */ listview listnames = (listview)findviewbyid(r.id.listviewmain); registerforcontextmenu(listnames); /** * initialisation de la liste avec les données */ listnames.setadapter(listexistingadapter); /** * bouton pour ouverture nouvelle liste */ final button buttonsuiv = (button) findviewbyid(r.id.btnnewliste); buttonsuiv.setonclicklistener(new view.onclicklistener() { /** * dialog window inquire if user wants create new list */ @override public void onclick(view v) { alertdialog.builder alert = new alertdialog.builder(mainactivity.this); // instantiate xml file minflater = (layoutinflater) mainactivity.this.getsystemservice(mainactivity.this.layout_inflater_service); linearlayout layout = (linearlayout) minflater.inflate( r.layout.dialogbox_main_activity , null) ; input = (edittext)layout.findviewbyid(r.id.titleset); checkpartage = (checkbox)layout.findviewbyid(r.id.partage); checklocal = (checkbox)layout.findviewbyid(r.id.local); alert.settitle("création d'une nouvelle liste"); alert.setmessage("tapez le nom de la nouvelle liste:"); // set edittext view user input final edittext input = new edittext(mainactivity.this); alert.setview(layout); alert.setpositivebutton("ok", new dialoginterface.onclicklistener() { public void onclick(dialoginterface dialog, int whichbutton) { string value = input.gettext().tostring() ; // value! if ( checkpartage.ischecked() ){ intent intent = new intent(mainactivity.this, listingarticlesdropb.class); intent.putextra("title",value); startactivity(intent); } else if ( checklocal.ischecked() ){ intent intent = new intent(mainactivity.this, listingarticles.class); intent.putextra("title",value); startactivity(intent); } } }); alert.setnegativebutton("cancel", new dialoginterface.onclicklistener() { public void onclick(dialoginterface dialog, int whichbutton) { dialog.cancel(); } }); alert.show(); } }); } } public void onactivityresult(int requestcode, int resultcode, intent data) { if (requestcode == request_code_initilization) { if (resultcode == result_canceled) { int i2 = 1 ; // applicationwithshareddata(); } else if (resultcode == activity.result_ok) { int i1 = 1 ; // applicationnoshareddata(); } } else super.onactivityresult(requestcode, resultcode, data); } /** * creation of contextual menu */ public void oncreatecontextmenu(contextmenu menu, view v,contextmenuinfo menuinfo) { super.oncreatecontextmenu(menu, v, menuinfo); menuinflater inflater = getmenuinflater(); inflater.inflate(r.menu.main, menu); menu.setheadertitle("désirez-vous supprimer la liste?"); // menu.add(0, v.getid(), 0, "action 1"); // menu.add(0, v.getid(), 0, "action 2"); } /** * action activated when menu's item selected */ @override public boolean oncontextitemselected(menuitem item) { adaptercontextmenuinfo info = (adaptercontextmenuinfo) item.getmenuinfo(); switch (item.getitemid()) { case r.id.yes_delete: /** * delete list database */ db.deletelistarticle(listexisting.get(info.position).id); log.d("oncontextitemselected => numéro de l'id:",string.valueof(info.targetview.getid()) ); /** * delete title list screen */ log.d("oncontextitemselected","le switch fonctionne!"); listexisting.remove(info.position); arrayadapterlistnames listexistingadapter = new arrayadapterlistnames(this,listexisting) ; listexistingadapter.addlistener(this); listview listnames = (listview)findviewbyid(r.id.listviewmain); registerforcontextmenu(listnames); listnames.setadapter(listexistingadapter); homecoming true; case r.id.no_delete: homecoming true; default: homecoming super.oncontextitemselected(item); } } public void onrestart(){ super.onrestart(); /** * name of existing lists */ listexisting = db.gettitlesqlitehelper(); /** * create arrayadapter list's names */ arrayadapterlistnames listexistingadapter = new arrayadapterlistnames(this,listexisting) ; /** * ecoute des évènements sur votre liste */ listexistingadapter.addlistener(this); /** * récupération du composant listview */ listview listnames = (listview)findviewbyid(r.id.listviewmain); /** * initialisation de la liste avec les données */ listnames.setadapter(listexistingadapter); } @override public void onclicknom(titlelist item, int position) { if (item.type_connection.equalsignorecase("local")){ intent intent = new intent(mainactivity.this, listingarticles.class); intent.putextra("title",item.nom); startactivity(intent); } else if (item.type_connection.equalsignorecase("dropbox")){ intent intent = new intent(mainactivity.this, listingarticlesdropb.class); intent.putextra("title",item.nom); startactivity(intent); } } }

firstconnection

public class firstconnection extends activity { final private string app_key = **app_key** ; final private string app_secret = **app_secret** ; static final int request_link_to_dbx = 0; // value private dbxaccountmanager maccountmanager ; private dbxdatastoremanager mdatastoremanager; private dbxaccount business relationship ; private sqlitehelper db ; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_first_connection); button btn = (button)findviewbyid(r.id.button_first_connection) ; btn.setonclicklistener(new onclicklistener() { @override public void onclick(view v) { // set business relationship manager maccountmanager = dbxaccountmanager.getinstance(getapplicationcontext(), app_key, app_secret); // set datastore manager if (maccountmanager.haslinkedaccount()) { seek { // utilize dropbox datastores mdatastoremanager = dbxdatastoremanager.foraccount(maccountmanager.getlinkedaccount()); gatherdata(); } grab (dbxexception.unauthorized e) { system.out.println("account unlinked remotely"); } } if (mdatastoremanager == null) { // business relationship isn't linked yet, utilize local datastores mdatastoremanager = dbxdatastoremanager.localmanager(maccountmanager); alertdialog.builder alert = new alertdialog.builder(firstconnection.this); alert.settitle("connection à dropbox"); alert.setmessage("l'initialisation de l'application sert à vous synchroniser avec l'espace de données partagées.\r\n" + "souhaitez-vous synchroniser votre application?"); alert.setpositivebutton("oui", new dialoginterface.onclicklistener() { public void onclick(dialoginterface dialog, int whichbutton) { maccountmanager.startlink((activity)firstconnection.this, request_link_to_dbx); } }); alert.setnegativebutton("non", new dialoginterface.onclicklistener() { public void onclick(dialoginterface dialog, int whichbutton) { intent returnintent = new intent(); setresult(result_canceled, returnintent); finish(); } }); alert.show(); } } }); } @override public void onactivityresult(int requestcode, int resultcode, intent data) { if (requestcode == request_link_to_dbx) { if (resultcode == activity.result_ok) { business relationship = maccountmanager.getlinkedaccount(); toast.maketext(this, "onactivityresult", toast.length_long).show(); seek { // migrate local datastores linked business relationship mdatastoremanager.migratetoaccount(account); // utilize dropbox datastores mdatastoremanager = dbxdatastoremanager.foraccount(account); gatherdata(); } grab (dbxexception e) { e.printstacktrace(); } } else { // link failed or cancelled user } } else { super.onactivityresult(requestcode, resultcode, data); } } private void gatherdata(){ db = new sqlitehelper( ) ; set<dbxdatastoreinfo> datastorepresent = null ; seek { datastorepresent = mdatastoremanager.listdatastores(); } grab (dbxexception e1) { e1.printstacktrace(); } iterator<dbxdatastoreinfo> datastoreloop = datastorepresent.iterator() ; while (datastoreloop.hasnext()){ titlelist tit = new titlelist(datastoreloop.next().id) ; tit.setconnectdropbox(); db.addlists(tit); } mdatastoremanager.shutdown(); intent returnintent = new intent(); boolean syncok = true ; returnintent.putextra("result", syncok) ; setresult(result_canceled, returnintent); finish(); // startactivity(returnintent); } }

add method on mainactivity

@override protected void onactivityresult(int requestcode, int resultcode, intent data) { super.onactivityresult(requestcode, resultcode, data); switch (requestcode) { case requset_code_your: if (resultcode == result_ok) { // write here code via **result_ok** } break; default: // none of these break; } }

and after firstconnection screen par write code whatever need method.

setresult(result_ok); // of import

java android

No comments:

Post a Comment