android - trying to send internet access check result to an activity -


i have non-activity check internet access using async task. way, code internet access check works correctly in activity. when added code non-activity class, want response saved string , send mainactivity using "startactivityforresult". added toast check if value passing mainactivity, toast shows blank. so, either response not saving int string or not sending mainactivity. i've posted log cat when button click in mainactivity due value being null, app crashes.

logcat    09-26 13:31:26.872: e/androidruntime(22041): fatal exception: main  09-26 13:31:26.872: e/androidruntime(22041): process: com.example.networkping, pid: 22041  09-26 13:31:26.872: e/androidruntime(22041): java.lang.nullpointerexception  09-26 13:31:26.872: e/androidruntime(22041): 	at com.example.networkping.mainactivity$1.onclick(mainactivity.java:43)  09-26 13:31:26.872: e/androidruntime(22041): 	at android.view.view.performclick(view.java:4562)  09-26 13:31:26.872: e/androidruntime(22041): 	at android.view.view$performclick.run(view.java:18918)  09-26 13:31:26.872: e/androidruntime(22041): 	at android.os.handler.handlecallback(handler.java:808)  09-26 13:31:26.872: e/androidruntime(22041): 	at android.os.handler.dispatchmessage(handler.java:103)  09-26 13:31:26.872: e/androidruntime(22041): 	at android.os.looper.loop(looper.java:193)  09-26 13:31:26.872: e/androidruntime(22041): 	at android.app.activitythread.main(activitythread.java:5388)  09-26 13:31:26.872: e/androidruntime(22041): 	at java.lang.reflect.method.invokenative(native method)  09-26 13:31:26.872: e/androidruntime(22041): 	at java.lang.reflect.method.invoke(method.java:515)  09-26 13:31:26.872: e/androidruntime(22041): 	at com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:839)  09-26 13:31:26.872: e/androidruntime(22041): 	at com.android.internal.os.zygoteinit.main(zygoteinit.java:655)  09-26 13:31:26.872: e/androidruntime(22041): 	at dalvik.system.nativestart.main(native method)
non-activity asynctask class     public  class internet extends asynctask<void, void, boolean>{  	     	   string sam;  	   context context;  	   activity activity;  	     	   public internet(activity ac) {  	        activity = ac;  	    }  	     	     	   public boolean isnetworkavailable() {  	       connectivitymanager connectivitymanager = (connectivitymanager) context.getsystemservice(context.connectivity_service);  	       networkinfo activenetworkinfo = connectivitymanager.getactivenetworkinfo();  	       return activenetworkinfo != null && activenetworkinfo.isconnected();  	   }  	             @override        protected void onpostexecute(boolean result){          if(result){          	          	// toast.maketext(getapplicationcontext(), "success", toast.length_short).show();          	sam="1";          	intent view = new intent(activity, mainactivity.class);          	view.putextra("zipcode", sam.tostring());          	activity.startactivityforresult(view, 1);          }                                 	          else{          	          	// toast.maketext(getapplicationcontext(), "failure", toast.length_short).show();          	sam="0";      		intent view = new intent(activity, mainactivity.class);      		view.putextra("zipcode", sam.tostring());      		activity.startactivityforresult(view, 1);          	          }             	        }            @override          protected boolean doinbackground(void... params) {               if (isnetworkavailable()) {                    try {                  	  httpurlconnection urlc = (httpurlconnection) (new url( "http://www.google.com"    ).openconnection());                        urlc.connect();                        int resp = urlc.getresponsecode();                         return resp == 200;                    } catch (ioexception e) {                        //log.e(log_tag, "error checking internet connection", e);                  	  system.out.println("error checking internet connection"+e);                    }                  } else {                    //log.d(log_tag, "no network available!");                  	system.out.println("no network available!");                  }                  return false;          }                       }
mainactivity    public class mainactivity extends activity {    	      button check;      string zipcode;            @override      protected void oncreate(bundle savedinstancestate) {      	      	      	super.oncreate(savedinstancestate);          setcontentview(r.layout.activity_main);                    zipcode = getintent().getextras().getstring("zipcode");          toast.maketext(getapplicationcontext(), zipcode, 3000).show();            check=(button)findviewbyid(r.id.check);  		check.setonclicklistener(new onclicklistener() {  			  			@override  			public void onclick(view v) {  				// todo auto-generated method stub  				//new checkinternetconnection().execute();  				//string zipcode = getintent().getextras().getstring("zipcode");  				if(zipcode.equals("1")){  					  					toast.maketext(getapplicationcontext(), "success", toast.length_short).show();  				  				}else if(zipcode.equals("0")){  					  					toast.maketext(getapplicationcontext(), "failure", toast.length_short).show();  				  				}  			}  		});                  }// oncreate             } //activity

try using

zipcode = getintent().getstringextra("zipcode"); 

instead of

zipcode = getintent().getextras().getstring("zipcode"); 

Comments