Java 具有20个扫描目的的Wifi扫描仪
我试图构建一个类数组,并将一些值放入对象,但它仍然显示空指针异常 我的代码是:Java 具有20个扫描目的的Wifi扫描仪,java,android,class,android-wifi,Java,Android,Class,Android Wifi,我试图构建一个类数组,并将一些值放入对象,但它仍然显示空指针异常 我的代码是: class WifiScanReceiver extends BroadcastReceiver { @SuppressLint("UseValueOf") public void onReceive(Context c, Intent intent) { List<ScanResult> wifilist = wifi.getScan
class WifiScanReceiver extends BroadcastReceiver {
@SuppressLint("UseValueOf")
public void onReceive(Context c, Intent intent) {
List<ScanResult> wifilist = wifi.getScanResults();
info = wifi.getConnectionInfo();
int k = wifilist.size();
scan_data[] data = new scan_data[k];
for (int i=0;i<20;i++){
wifi.startScan();
List<ScanResult> wifilist1 = wifi.getScanResults();
int l = wifilist1.size();
if (i==0){
for (int j=0;j<l;j++){
data[j].ssid = wifilist1.get(j).SSID.toString();
data[j].bssid = wifilist1.get(j).BSSID.toString();
data[j].lvl = wifilist1.get(j).level;
data[j].count++;
}
问题是扫描_数据数组未使用对象初始化
scan_data[] data = new scan_data[k];
这只是初始化数组,而不是将对象放入其中。你必须明确地这样做
所以在你的for循环中。创建scan_数据对象并将所有值放入其中,然后将其放入数据[j]
for (int j=0;j<l;j++){
scan_data sData = new scan_data();
// set all desired values in sData from ScanData
data[j] = sData;
}
用于(int j=0;jWell这只是一个建议,建议您首先调试代码,确定条件失败的点以及原因。您的数据
数组的所有索引都为null
,直到出现NPE
的那一行,它才被初始化。@RaviBhatt这不正确。列表索引将为0
至l-1
soj@Sanjeev是的,你说得对。很好。@AnkitLamba我如何创建动态数组。我明白你的意思了
for (int j=0;j<l;j++){
scan_data sData = new scan_data();
// set all desired values in sData from ScanData
data[j] = sData;
}