【发布时间】:2016-01-06 00:57:56
【问题描述】:
我正在尝试制作一个简单的应用程序来查找 WiFi 网络并连接到它们。我目前在更新 UI 时遇到问题。
一些指针会很棒。感谢您的宝贵时间。
class UiUpdater extends AsyncTask<Void, Void, List<ScanResult>> {
@Override
protected void onPreExecute() {
super.onPreExecute();
TextView searching = (TextView) findViewById(R.id.searching);
searching.setText("Currently searching...");
}
@Override
protected List<ScanResult> doInBackground(Void... params) {
WifiManager manager = (WifiManager) Client.this.getSystemService(Context.WIFI_SERVICE);
if (!manager.isWifiEnabled())
manager.setWifiEnabled(true);
return manager.getScanResults();
}
@Override
protected void onPostExecute(List<ScanResult> items) {
super.onPostExecute(items);
ArrayList<Items> wifi = new ArrayList<>();
for (ScanResult s : items)
wifi.add(new Items(s.SSID, s.capabilities));
///TextView searching = (TextView) findViewById(R.id.searching);
///searching.setText("");
ListView list = (ListView) findViewById(R.id.list);
Explorer adapter = new Explorer(Client.this, R.layout.listview_item_row, wifi);
list.setAdapter(adapter);
clickListener(list, wifi);
}
}
【问题讨论】:
-
您到底遇到了什么问题?您是否收到错误消息?有错误日志吗?
-
我没有收到任何错误,它只是不会更新 UI,无论我等待多长时间。
-
您是否验证过您的 doInBackground 是否返回了任何
ScanResults? -
是否调用了 onPostExecute?如果没有,那么似乎 getScanResults 永远不会返回。如果是,那么问题可能出在您的适配器上。
-
是的,我试过'if(wifi!=null)',显然它返回了一些东西。
标签: java android android-asynctask