当我在root设备上运行我的应用程序时,ListView是空白的,我不知道为什么?
import android.content.IntentFilter;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.content.Context;
import android.content.BroadcastReceiver;
import android.content.Intent;
import java.util.List;
import android.net.wifi.ScanResult;
import android.net.wifi.WifiManager;
import android.widget.Toast;
这是我的主要课程:
public class Network_List extends AppCompatActivity {
WifiManager wifiM;
WifiScanReciever wifiR;
ListView networklist;
String wifis[];
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_network__list);
搜索网络的搜索框(尚未实施,因此不用担心)
EditText searchNet = (EditText) findViewById(R.id.networkEditText);
这是显示网络信息的主要列表
networklist = (ListView) findViewById(R.id.networkList);
EditText的搜索按钮(这是为了将来的开发)
Button networkButton = (Button) findViewById(R.id.searchButton);
scanButton是一个启动扫描的按钮
Button scanButton = (Button) findViewById(R.id.buttonScan);
宣布wifiM为wifi经理并获得服务
wifiM = (WifiManager) getSystemService(Context.WIFI_SERVICE);
将wifiR声明为WifiScanReciever
wifiR = new WifiScanReciever();
开始扫描的按钮
scanButton.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
wifiM.startScan();
}
});
}
protected void onPause(){
unregisterReceiver(wifiR);
super.onPause();
}
protected void onResume(){
registerReceiver(wifiR, new IntentFilter(wifiM.SCAN_RESULTS_AVAILABLE_ACTION));
super.onResume();
}
这会收到扫描结果并将其放入一个名为wifis的数组中。 onReceive捕获扫描结果并设置数组wifis的大小。
private class WifiScanReciever extends BroadcastReceiver{
public void onReceive(Context c, Intent intent){
List<ScanResult> wifiSList = wifiM.getScanResults();
wifis = new String[wifiSList.size()];
for (int x = 0; x<wifiSList.size(); x++){
wifis[x] = ((wifiSList.get(x)).toString());
}
networklist.setAdapter(new ArrayAdapter<String>(getApplicationContext(),android.R.layout.simple_list_item_1,wifis));
}
}
}