我需要扫描可用的wifi网络并将其列在可点击的列表视图中。使用我在网上找到的一些教程,并在这里由meny人重复,我设法完成了这段代码:
public class Wifi_list extends Activity implements OnClickListener
{
WifiManager wifi;
ListView lv;
TextView textStatus;
Button buttonScan;
Switch enable;
int size = 0;
List<ScanResult> results;
String ITEM_KEY = "key";
ArrayList<HashMap<String, String>> arraylist = new ArrayList<HashMap<String, String>>();
SimpleAdapter adapter;
/* Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.wifi_list);
buttonScan = (Button) findViewById(R.id.button1);
buttonScan.setOnClickListener(this);
lv = (ListView)findViewById(R.id.listView1);
wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
enable.setChecked(wifi.isWifiEnabled());
enable.setOnCheckedChangeListener(new OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton compoundbutton, boolean flag) {
wifi.setWifiEnabled(flag);
if(flag){
arraylist.clear();
lv.setVisibility(View.VISIBLE);
buttonScan.setEnabled(true);
wifi.startScan();
}else{
lv.setVisibility(View.INVISIBLE);
buttonScan.setEnabled(false);
}
}
});
this.adapter = new SimpleAdapter(Wifi_list.this, arraylist, R.layout.wifi_item, new String[] { ITEM_KEY }, new int[] { R.id.list_value });
lv.setAdapter(this.adapter);
lv.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
int a = lv.getSelectedItemPosition();
}
});
registerReceiver(new BroadcastReceiver()
{
@Override
public void onReceive(Context c, Intent intent)
{
results = wifi.getScanResults();
size = results.size();
for(int i=size-1;i>=0;i--){
HashMap<String, String> item = new HashMap<String, String>();
item.put(ITEM_KEY, results.get(i).SSID);
arraylist.add(item);
}
if(size>0)
adapter.notifyDataSetChanged();
}
}, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
}
public void onClick(View view)
{
arraylist.clear();
wifi.startScan();
Toast.makeText(this, "Scanning....", Toast.LENGTH_SHORT).show();
}
}
但是我找不到R.layout.wifi_item和R.id.list_value是什么,因为我得到了错误。有人可以帮我解决这个问题吗?感谢。
答案 0 :(得分:2)
但我无法找到神的名字是R.layout.wifi_item 和R.id.list_value,因为我得到错误。有人可以帮助我 搞清楚这个?感谢。
您命名的文件是布局文件,在.xml
中定义它们可以包含UI组件,例如您要用于显示WiFi网络的ListView。
在您的示例中,您有2个布局文件。 一个是R.layout.wifi_list,它包含一个按钮(button1)和一个ListView(listView1)。 另一个是R.layout.wifi_item,一个自定义布局文件,表示ListView中一个条目的布局。
显示包含WiFi网络名称的简单字符串,您可以使用Android预定义布局“android.R.layout.simple_list_item_1”作为List-Adapter。