mobile - android getDrawable() doesn't run -
i trying make app turn on mobile data on click. however, requires detect if mobile data on. if on, data1.png displayed else data0.png. however, reason not changing. test 2 running though. (wdata image button) code:
connectivitymanager cm = (connectivitymanager) getapplicationcontext().getsystemservice(context.connectivity_service); try { class cmclass = class.forname(cm.getclass().getname()); method method = cmclass.getdeclaredmethod("getmobiledataenabled"); method.setaccessible(true); // make method callable // setting "mobile data" mobenabled = (boolean)method.invoke(cm); } catch (exception e) { // problem accessible private api // todo whatever error handling want here } toast.maketext(mainactivity.this, ""+mobenabled, toast.length_short).show(); if mobile data enabled, returns true.
if(mobenabled){ wdata1=getresources().getdrawable(r.drawable.data1); toast.maketext(mainactivity.this, ":test 1:"+mobenabled, toast.length_short).show(); //runs wdata.setimagedrawable(wdata1);// doesn't set }else{ wdata1 = getresources().getdrawable(r.drawable.data0); toast.maketext(mainactivity.this, ":test 2:"+mobenabled, toast.length_short).show(); wdata.setimagedrawable(wdata1); } i have used drawable wdata1 in other areas:
wdata.setonclicklistener(new view.onclicklistener() { @override public void onclick(view v) { if(mobiledataenabled(getapplicationcontext())){ setmobiledataenabled(getapplicationcontext(), false); wdata1 = getresources().getdrawable(r.drawable.data0); amobiledataenabled = false; }else{ setmobiledataenabled(getapplicationcontext(),true); wdata1 = getresources().getdrawable(r.drawable.data1); amobiledataenabled = true; } wdata.setimagedrawable(wdata1); } }); and in onresume() method:
if( amobiledataenabled){ wdata1 = getresources().getdrawable(r.drawable.data1); wdata.setimagedrawable(wdata1); }else { wdata1 = getresources().getdrawable(r.drawable.data0); wdata.setimagedrawable(wdata1); }
after setting drawable else, try calling wdata.invalidatedrawable(wdata1); right afterwards indicate needs refreshed.
Comments
Post a Comment