我有一个简单的for循环WIFI信息,我想在循环外使用wifis[i]
,pleeeease帮助我怎么能这样做,因为它是一个数组!我只能获得数组中的第一个值。
// Setup WiFi
wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
// Register Broadcast Receiver
if (receiver == null)
receiver = new WiFiScanReceiver(this);
registerReceiver(receiver, new IntentFilter(
WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
Log.d(TAG, "onCreate()");
ArrayList<ScanResult> wifiScanList = new ArrayList<ScanResult>(wifi.getScanResults());
wifis = new String[wifiScanList.size()];
for( int i = 0; i < wifiScanList.size(); i++){
wifis[i] = ((wifiScanList.get(i).BSSID).toString()+" , "
+ String.valueOf(wifiScanList.get(i).level) +" , " + String.valueOf(wifiScanList.get(i).frequency));
Log.e("WIFI list", " : " + wifis[i]);
}
答案 0 :(得分:1)
问题不是因为在for循环之外使用了数组本身。它是循环局部变量i
,它在循环外不可见。
如果你想在那个循环之外访问数组wifis
的某个元素,那么你可以直接提供索引值,如 - wifis[0]
(第一个元素),或者使用一些变量&#39 ;在那个循环之外可见。
答案 1 :(得分:0)
当你想在某个地方使用数组时,传统上你会在数组内部的每个元素上编写另一个for循环,因为数组是一个接一个的元素集合:
for (int i = 0; i < wifis.length; ++i) {
Log.e("WIFI list", " : " + wifis[i]);
}
这样,首先你将使用wifis [0],然后使用wifis [1],然后使用wifis [2] 直到你有了wifis [wifis.length-1],只要有这么多元素。
基本上,你从数组开始,逐个使用,从头到尾。
你也可以写一个for-each-loop:
for (String str : wifis) {
Log.e("WIFI list", " : " + str);
}
这基本上意味着“对于wifis中的每个字符串str执行以下操作......”