我试图将WiFi的扫描术从一个类带到另一个类。
这是我的第一堂课:
public class WifiReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context ctx, Intent intent) {
// Wenn Hardware scan durchzogen wurde (wegen -->SCAN_RESULTS_AVAILABLE_ACTION)
String wifiList1;
wifiList = mainWifi.getScanResults();
wifiList1=wifiList.toString();
Toast.makeText(ctx, "Scan für AP Umgebung fertig", Toast.LENGTH_SHORT).show();
Log.v("onReceive","ausgeführt");
Log.v("ScanResults",wifiList1);
}
public List<ScanResult> getWifiList(){
return wifiList;
}
这是另一个类,我想从getscanresults((中使用我的数据,我可以在这里保存在Wifilist中。
public StringBuilder getAParound(){
StringBuilder sb = new StringBuilder();
DemoApp wf2 = new DemoApp();
DemoApp.WifiReceiver wf = wf2.new WifiReceiver();
for (int i = 0; i< wf.getWifiList().size(); i++) { // At this line Android Monitor says Attempt to invoke interface method 'int java.util.List.size()' on a null object reference
sb.append(Integer.toString(i + 1) + ". ");
sb.append(wf.getWifiList().get(i).toString());
Log.v("getAParound","ausgeführt");
}
return sb;
}
我可以在 Log.v("ScanResults",wifiList1);
中看到结果。
有人可以帮我吗?
我认为,您不使用wifilist,请尝试使用'new'关键词在构造函数方法中创建列表的实例。
这样:
public class WifiReceiver extends BroadcastReceiver {
private List<ScanResult> wifiList;
// This is a construtcor
public WifiReceiver(){
wifiList = new List<ScanResult>() // Here you crerate the object
}
@Override
public void onReceive(Context ctx, Intent intent) {
// Wenn Hardware scan durchzogen wurde (wegen -->SCAN_RESULTS_AVAILABLE_ACTION)
String wifiList1;
wifiList = mainWifi.getScanResults();
wifiList1=wifiList.toString();
Toast.makeText(ctx, "Scan für AP Umgebung fertig", Toast.LENGTH_SHORT).show();
Log.v("onReceive","ausgeführt");
Log.v("ScanResults",wifiList1);
}
public List<ScanResult> getWifiList(){
return wifiList;
}
是因为对象类型Defualt值为'null'