Android SharedPreference 幽灵号?

Android SharedPreference Ghost Number?

我快疯了,我正在使用共享首选项来创建 google 地图标记,它正在从一个 2130 行长的文本文档中获取坐标,但确实有些不对劲,这是坐标绕行 1982

06-16 23:23:10.072  22228-22228/com.emiliogaines.fuelfinder D/X:﹕ 12.0434 990
06-16 23:23:10.072  22228-22228/com.emiliogaines.fuelfinder D/Y:﹕ 57.7891
06-16 23:23:10.130  22228-22228/com.emiliogaines.fuelfinder D/X:﹕ 17.8537 991
06-16 23:23:10.130  22228-22228/com.emiliogaines.fuelfinder D/Y:﹕ 59.4185
06-16 23:23:10.169  22228-22228/com.emiliogaines.fuelfinder D/X:﹕ 35 992
06-16 23:23:10.169  22228-22228/com.emiliogaines.fuelfinder D/Y:﹕ 16.403
06-16 23:23:10.202  22228-22228/com.emiliogaines.fuelfinder D/X:﹕ 60.2867 993
06-16 23:23:10.202  22228-22228/com.emiliogaines.fuelfinder D/Y:﹕ 16.8904
06-16 23:23:10.230  22228-22228/com.emiliogaines.fuelfinder D/X:﹕ 60.6137 994

(末尾号是行号除以2)

这里是完全相同的部分,但来自文本文件

12.0434
57.7891
17.8537
59.4185
16.403
60.2867
16.8904
60.6137

它以某种方式获得了数字 35,并且如您所见,它弄乱了整个系统

这是检索文本的代码

        while(linecordx != null){

            googleMap.addMarker(new MarkerOptions()
                    .position(new LatLng(Double.parseDouble(linecordx), Double.parseDouble(linecordy)))
                    .icon(BitmapDescriptorFactory.fromResource(R.drawable.okq8_scale))
                    .title(statoilid + ". OKQ8")
                    .snippet("Tryck på den här rutan för att ändra Markören"));
            SharedPreferences.Editor editorsave = sharedPreferences.edit();

            editorsave.putInt("Title" + statoilid, statoilid);
            editorsave.putString("Info" + statoilid, "Tryck på den här rutan för att ändra Markören");
            editorsave.putString("XCord"+statoilid, linecordx);
            editorsave.putString("YCord" + statoilid, linecordy);
            editorsave.putString("Icon" + statoilid, "5");
            editorsave.commit();
            statoilid++;
            statoilnumber++;
            linecordx = okreader.readLine();
            linecordy = okreader.readLine();
                Log.d("X: ", linecordx + " "+ statoilid);
            Log.d("Y: ", linecordy);



        }
    } catch(IOException ioe){
        ioe.printStackTrace();
    }

有时你会因为这些事情而产生狭隘的视野,但我确实立即看到了一些东西。

59.4185 ends with 5

16.403 ends with 3 (it's also strangely only 3 decimals)

= 35

我很确定你的 readLine() 方法是罪魁祸首,你可能以某种方式错误地初始化了它们。我也会尝试稍微更改文件中这些行周围的数字,看看出了什么问题。