-1

WiFiネットワークごとにボタンを作成しようとしています。私は次のコードを使用しています:

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();
    }
}

しかし、私は「トースト」を続けていjava.lang.nullpointerexceptionsます。

最初のトーストステートメントもトーストしません。wifiはでありWifiManagerwifinetworksList<ScanResult>です。ありがとうございました。

更新: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)

編集:私はばかです。wifi実際のWifiManagerに設定するのを忘れました...

4

2 に答える 2

1

wifinetworksnullチェックの前に使用しています:

    Toast.makeText(this, wifinetworks.toString(), 1).show();
    if (wifinetworks != null) {

wifinetworksトーストで null の場合、明らかに NPE を取得しますwifinetworks.toString()

于 2013-01-15T12:15:08.550 に答える
1

それらをandroid manifest.xmlで使用します

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
于 2013-01-15T12:18:37.493 に答える