java - ShakeActivity 1st launch to be neglected -
i wanted create webview comes on shakeactivity. in xml of current activity, made webview visibility invisibe. now, have shakeevent listener. working fine, except start shakeactivity on first launch displays shaking in toast in text included that, have in onshake() function. but, dont want that. want neglect first launch of shakeactivity , after 2nd shake want refresh shakeactivity load url , visibility of webview visible.
import android.annotation.suppresslint; import android.app.activity; import android.content.context; import android.content.intent; import android.os.bundle; import android.os.vibrator; import android.view.view; import android.view.window; import android.view.windowmanager; import android.webkit.webview; import android.widget.toast; public class mainactivity extends activity implements shakeeventmanager.shakelistener { private shakeeventmanager sd; private static long back_pressed; boolean isinternetpresent = false; private int count = 0; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); requestwindowfeature(window.feature_no_title); getwindow().setflags(windowmanager.layoutparams.flag_fullscreen, windowmanager.layoutparams.flag_fullscreen); setcontentview(r.layout.activity_main); createdata(); sd = new shakeeventmanager(); sd.setlistener(this); sd.init(this); } private void createdata() { webview web = (webview) findviewbyid(r.id.webview); web.getsettings().setjavascriptenabled(true); web.getsettings().setpluginsenabled(true); web.loadurl("http://www.google.com"); } @override public void onshake() { count++; if (count >= 1) { connectiondetector cd = new connectiondetector( getapplicationcontext()); isinternetpresent = cd.isconnectingtointernet(); vibrator vibrator = (vibrator) getsystemservice(context.vibrator_service); vibrator.vibrate(1000); if (isinternetpresent) { createdata(); } else { toast.maketext(getapplicationcontext(), "enable data connection", toast.length_long).show(); } } } @override public void onresume() { super.onresume(); sd.register(); } @override protected void onpause() { super.onpause(); sd.deregister(); } @override public void onbackpressed() { finish(); } }
your count++
variable increasing value first before checking condition first time may have increase in if
have done or can put statement @ last after condition.
change following:
@override public void onshake() { if (count++ >= 1) { connectiondetector cd = new connectiondetector( getapplicationcontext()); isinternetpresent = cd.isconnectingtointernet(); vibrator vibrator = (vibrator) getsystemservice(context.vibrator_service); vibrator.vibrate(1000); if (isinternetpresent) { createdata(); } else { toast.maketext(getapplicationcontext(), "enable data connection", toast.length_long).show(); } } }
note: dont have tested saw code , found logical mistake may helpful :)
Comments
Post a Comment