Android: почему этот код не позволяет мне устанавливать текст (плавать?)? - PullRequest
0 голосов
/ 09 июня 2011
    LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
    Criteria criteria = new Criteria();
    String bestProvider = locationManager.getBestProvider(criteria, false);
    Location location = locationManager.getLastKnownLocation(bestProvider);
    SharedPreferences settings = getSharedPreferences("cars4sale",0);
    SharedPreferences.Editor GPS = settings.edit();
    GPS.putFloat("latitude", (float)location.getLatitude());
    GPS.putFloat("longitude", (float)location.getLongitude());
    GPS.commit();

    TextView GPSTV = (TextView)findViewById(R.id.GPSTV);
    SharedPreferences coords = getSharedPreferences("cars4sale",0);
    String gpsstr = GPS.getFloat("gps", "");    
    GPSTV.setText(gpsstr);

Основная проблема в том, что eclipse хочет, чтобы я изменил getFloat на putFloat, а затем, когда я это сделаю, он хочет, чтобы я сделал getInt, а затем зацикливается между float и Int. Я просто хочу сохранить число в поле просмотра текста!

1 Ответ

3 голосов
/ 09 июня 2011

Потому что координаты - это sharedpreferences, и я не думаю, что вы хотите установить текст там?

Разве вы не имеете в виду

GPSTV.setText(gpsstr);

Это:

String gpsstr = GPS.getFloat("gps", "");    

Не работает, потому что GPS ваш редактор, а не sharedpreferences.Вам нужно это

String gpsstr = String.valueOf(coords.getFloat("gps", 0));    
GPSTV.setText(gpsstr);
...