java - 在android中的 ListView 中对连接的wifi进行排序

标签 java android listview android-wifi

我在 ListView 中显示可用的wifi,并且我正在连接到wifi.. 在我的 Android 应用程序中使用对话框..一旦 wifi 连接如何显示 wifi名称作为 ListView 中的第一个..我想将连接的wifi显示为第一个 ListView ..我该怎么做?

    TextView textView = (TextView)view.findViewById(R.id.Name);
     textView.setText(accessPoints.get(i);
     textView.setOnClickListener(
     new View.OnClickListener() {

        @Override
        public void onClick(View view) {
        final Dialog dialog =new Dialog(getActivity());
        dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
        Window window = dialog.getWindow();
        dialog.setContentView(R.layout.password_dialog);
        final Button connect = (Button)dialog.findViewById(R.id.connect);
        Button cancel = (Button)dialog.findViewById(R.id.cancel);
        connect.setOnClickListener(
        new View.OnClickListener() {

          @Override
           public void onClick(View view) {
           list<WifiConfiguration> list = wifiManager.getConfiguredNetworks();
           for( WifiConfiguration i : list ) {
           if(i.SSID != null && i.SSID.equals("\"" + networkSSID + "\"")) {
           wifiManager.disconnect();
           wifiManager.enableNetwork(i.networkId, true);
           wifiManager.reconnect();               
           break;
         }
        }
       }

最佳答案

WifiManager 类有一个方法 getConnectionInfo(),它将返回当前连接的 WifiInfo 对象。您可以检查此 wifi 的 SSID String 并使用简单的 Java Comparator 将其与 WifiConfiguration 列表进行比较,如下所示:

public static class WifiComparator implements Comparator<WifiConfiguration> {

    WifiInfo connectedInto;

    public WifiComparator(WifiInfo connectedInto) {
        this.connectedInto = connectedInto;
    }

    @Override
    public int compare(WifiConfiguration lhs, WifiConfiguration rhs) {
        if (connectedInto == null)
            return 0;
        else {
            if (lhs.SSID.equals(connectedInto.getSSID()))
                return 1;
            return 0;
        }
    }
}

然后通过调用对列表进行排序

Collections.sort(list, new WifiComparator(wifiManager.getConnectionInfo()));

关于java - 在android中的 ListView 中对连接的wifi进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39444498/

相关文章:

java - `onCreate` 方法未被调用

java - 构造时通过反射获取Java中的静态实例名称

java - 使用 java 录制流时获取 MP3 标签

android - 使用动态微调器处理方向变化

android - 如何为在 ListView 中动态添加的项目创建 Activity ?

Android:处理ListView回收

c# - 在 ListView 中显示和编辑各种项目类型

java - 绑定(bind)到支持 bean 后如何获得自定义后处理? Java 服务器界面

java - 如何在android中滑动布局(线性/相对..)

android - 我应该如何为Android平台编译tesseract-4?