android wifi界面根据信号强度排序

        作为一名小白,我没有大牛的技术,没有别人的聪慧,只希望自己孜孜不倦的学习,可以让自己每天都有提高。

    今天学习到几个知识点不太理解,把自己查到的资料和例子记录下来,如有大神经过,欢迎指正。

    知识点一:工具类Collections中静态方法sort的使用。

    Collections是一个工具类,sort是其中的静态方法,是用来对List类型进行排序的,它有两种参数形式:

    public static <T extends Comparable<? super T>> void sort(List<T> list) {
        list.sort(null);
    }
    public static <T> void sort(List<T> list, Comparator<? super T> c) {
        list.sort(c);
    }

再做一个显示wifi列表的项目,现在单独把根据信号强度排序的方法列出来。

首先建立一个Comparable类:

    public class WifiList implements Comparable<WifiList>{
private String wifiname;
private String level;
private state;
private String capabilities;
@Override
public String toString(){
return "WIfiList{"+
"wifiName=' " + wifiName + '\''+
",level=' "+ level+'\''+
",state='"+state+'\''+
",capabilities='"+capabilities+'\''+
'}';
}
public String getCapabilities(){
return capabilities;
}
public void setCapabilities(){
this.capabilities = capabilities;
}
public String getWifiName(){

return wifiName;

}
public void setWifiName(String wifiName){
this.wifiName = wifiName;
}
public String getLevel(){

return level;
}
public void setLevel(String level){
this.level = level;
}
public String getState(){
return state;
}
public void setState(String state){

this.state = state;
}
@Override
public int compareTo(WifiList c){//按照level排序

int level1 = Integer.parseInt(this.getLevel());
int level2 = Integer.parseInt(c.getLevel());
return level1 - level2;
}

}

下面是调用方法:

public void sortScanResult(){

List<ScanResult>scanResults = WifiSupport.noSameName(WifiSupport.getWifiScanResult(this));

扫描二维码关注公众号,回复: 5041166 查看本文章

realWifiList.clear();

if(!CollectionUtils.isNullOrEmpty(scanResults)){

for(int i = 0;i < scanResults.size();i++){

WifiList wifiList = new WifiList();

wifiList.setWifiName(scanResults.get(i).SSID);

wifiList.setState(AppContants.WIFI_STATE_UNCONNECT);

wifiList.setCapabilities(scanResults.get(i).capabilities);

wifiList.setLevel(WifiSupport.getLevel(scanResults.get(i).level)+"");

realWifiList.add(wifiBean);

Collections.sort(realWifiList);

adapter.notifyDataSetChanged();
}

}

}

    只写了关于Collections.sort部分的一个应用实例,实际应用过程中可以有多种方法,详细的用法,请参照大神的博客http://www.cnblogs.com/yw0219/p/7222108.html

知识点二:怎么去除同名列表

public static List<ScanResult>DelSameName(List<ScanResult>oldSr){

    List<ScanResult>newSr = new ArrayList<ScanResult>();

    for(ScanResult result:oldSr){

        if(!TextUtils.isEmpty(result.SSID)&&containName(newSr,result.SSID))

            newSr.add(result);

}

return newSr;

}

public static boolean containName(List<ScanResult>Sr,String name){

    for(ScanResult result:sr){

        if(!TextUtils.isEmpty(result.SSID)&&result.SSID.equals(name))

            return true;    

        }

        return false;    

}


     在求知的路上,多荆棘多歧路,每一次茫无头绪的时候,在某一篇博客上看到一些前辈的解决方法,都感觉非常感激,所以自己也要把自己学到的记录下来,供路人审阅斧正。

    忙碌的一天,中午休息过后,迷迷糊糊打开手机,点开微博,瞬间懵了--霍金去世了,作为从小听着他故事长大的一代,只能在心中默默哀悼前辈一路走好。。。。。

猜你喜欢

转载自blog.csdn.net/u011976443/article/details/79559152