I am trying to create a button for each WiFi network. I am using the following code:
public void RefreshWifi(View v)
{
try {
wifi.startScan();
wifinetworks = wifi.getScanResults();
Toast.makeText(this, wifinetworks.toString(), 1).show();
if (wifinetworks != null) {
for (ScanResult i : wifinetworks) {
Button newbutton = new Button(this);
newbutton.setText(i.getClass().getName());
wifilayout.addView(newbutton);
}
}
} catch (Exception e) {
Toast.makeText(this, "Error: " + e.toString(), 1).show();
}
}
However I keep getting 'toasted' with java.lang.nullpointerexceptions
.
It doesn't even toast the first toast statement. wifi
is a WifiManager
and wifinetworks
is a List<ScanResult>
. Thank you.
Update: Stacktrace
java.lang.NullPointerException
at com.fireoak.hacker.MainActivity.RefreshWifi(MainActivity.java)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at android.view.View$1.onClick(View.java:3592)
at android.view.View.performClick(View.java:4202)
at android.view.View$PerformClick.run(View.java:17340)
at android.os.Handler.handleCallback(Handler.java:725)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5039)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
at dalvik.system.NativeStart.main(Native Method)
EDIT: I AM AN IDIOT. forgot to set wifi
to actual WifiManager...
You're using wifinetworks
before the null check:
Toast.makeText(this, wifinetworks.toString(), 1).show();
if (wifinetworks != null) {
If wifinetworks
is null on the Toast, then you obviously get an NPE at wifinetworks.toString()