2012-05-29 68 views
0

此代码给出错误说:“错误接收广播意图在活动” 我无法找到任何eroors虽然...........任何想法? 我已经添加了循环条件七,我只希望前七个扫描结果奇怪的Android程序错误

class WifiReceiver extends BroadcastReceiver { 
    public void onReceive(Context con, Intent intent) { 
     sb = new StringBuilder(); 
     wifiList = mainWifi.getScanResults(); 

     for(int i = 0; i < wifiList.size(); i++) 
     { 
      sb.append((wifiList.get(i)).SSID.toString()); 
      sb.append(' '); 
      sb.append('!'); 
      sb.append("\n\n"); 
     } 

     String net = sb.toString(); 

     if(wifiList.size() > 0) 
     { 


     char excl = '!'; 
     int excl1 = excl; 
     String[] aray = null; 
     for(int j = 0; j<7; j++) 
     { 
      int index = net.indexOf(excl1); 
      String a = net.substring(0, index); 
      aray[j] = a; 
      String temp = net.substring(index+1); 
      net = temp; 

     } 

     String one = aray[0]; 
     String two = aray[1]; 
     String three = aray[2]; 
     String four = aray[3]; 
     String five = aray[4]; 
     String six = aray[5]; 
     String seven = aray[7]; 
     tv1.setText(one); 

    } 
     else 
     { 
      tv1.setText("No Networks Detected"); 
     } 
} 
} 

PS:我只加入一个TextView的,因为这是一个测试模块

+0

你有没有在android清单中声明BroadcastReceiver? – Jeshurun

+0

@Jeshurun ...是的,我做过 –

+0

必须通过这段代码?它抛出一个运行时错误,如列表索引超出界限或空异常吗? –

回答

0

的“阿雷”数组未正确初始化。您需要在访问之前初始化“aray”:

String[] aray = new String[7]; 

您也正在超出数组的维度。这样的:

String seven = aray[7]; 

应该是:

String seven = aray[6]; 

一个更好的解决办法是使用ArrayList。

ArrayList al = new ArrayList(); 
al.add(yourString); 
+0

它显示一个NullPointer异常。 Waht可能是错的? –

+0

它不是一个分配问题,因为如果我删除if-else条件并直接将String net分配给TextView,它将起作用。我还能做什么 –