У меня есть небольшой ap с настройками. В этом классе я установил onPreferenceClick для получения координат от GPS. Когда слушатель возвращается, я надеюсь, что он будет автоматически устанавливать lat/long textedits. Я не пробовал каждый образец источника там, не повезло:Android: Настройка параметров программно
public void onLocationChanged(Location l) {
Log.d("H","Location Received: "+l.toString());
prefLocation.setSummary(l.toString());
SharedPreferences settings = getSharedPreferences(PREFS_NAME, MODE_PRIVATE);
SharedPreferences.Editor editor1 = settings.edit();
editor1.putString("posLat","xxx");
editor1.commit();
}
При выполнении этого кода, когда я нажимаю на моем PreferenceScreen и местоположения возвращает слушателя, то EditTextPreference с ключом «Poslat» по-прежнему показывает старое значение.
Я схожу с ума, пытаясь выяснить, в чем дело!
Мой prefs.xml:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
android:key="My_Shared_Preferences">
<PreferenceCategory
android:title="Your Location">
<PreferenceScreen
android:title="Find Location..."
android:key="location"
android:summary="Click here to read your location automatically"/>
<EditTextPreference
android:title="Latitude"
android:key="posLat" />
<EditTextPreference
android:title="Longtitude"
android:key="posLong" />
<EditTextPreference
android:title="Altitude"
android:key="posAlt" />
</PreferenceCategory>
</PreferenceScreen>
В качестве альтернативы, может быть, есть лучший способ для сохранения значения местоположения для приложения? Я не хочу, чтобы пользователь вручную вводил координаты, но я не хочу прибегать к сохранению и загрузке текстового файла с настройками, он кажется таким грубым.
Чувак, я бы хотел купить тебе кофе. Бесконечно благодарен! –
Добро пожаловать :) Пострадавший некоторое время с этим тоже, знай это чувство. Я возьму кофе и притворяюсь, что это на тебе;) –