有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java我无法在安卓中显示扫描结果

当我在根设备上运行我的应用程序时,ListView为空,我不知道为什么

import 安卓.content.IntentFilter;
import 安卓.support.v7.app.AppCompatActivity;
import 安卓.os.Bundle;
import 安卓.view.View;

import 安卓.widget.ArrayAdapter;
import 安卓.widget.Button;
import 安卓.widget.EditText;
import 安卓.widget.ListView;

import 安卓.content.Context;
import 安卓.content.BroadcastReceiver;
import 安卓.content.Intent;

import java.util.List;

import 安卓.net.wifi.ScanResult;
import 安卓.net.wifi.WifiManager;

import 安卓.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为WifiscanReceiver

    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();
}

这将接收扫描结果并将其放入一个名为WIFI的数组中。onReceive捕获扫描结果并设置阵列WIFI的大小

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(),安卓.R.layout.simple_list_item_1,wifis));

    }

}

}


共 (0) 个答案