Нулевая точка в общих настройках подклассаAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Нулевая точка в общих настройках подкласса

Сообщение Anonymous »

Я пытаюсь обновить старый класс для библиотек AndroidX. Раньше это было написано как

Код: Выделить всё

import android.preference.PreferenceActivity;
...
public class LatinIMESettings extends PreferenceActivity
implements SharedPreferences.OnSharedPreferenceChangeListener,
DialogInterface.OnDismissListener {

@Override
protected void onCreate(Bundle icicle) {
...
SharedPreferences prefs = getPreferenceManager().getSharedPreferences();
prefs.registerOnSharedPreferenceChangeListener(this);
}
...
}
Похоже, что в androidx нет прямого аналога PerferenceActivity, поэтому я попытался переписать его как

Код: Выделить всё

import androidx.fragment.app.FragmentActivity;
import androidx.preference.PreferenceFragmentCompat;
...
public class LatinIMESettings extends FragmentActivity
implements SharedPreferences.OnSharedPreferenceChangeListener,
DialogInterface.OnDismissListener {

static class LatinIMESettingsFragment extends PreferenceFragmentCompat {
@Override
public void onCreatePreferences(@Nullable Bundle savedInstanceState, @Nullable String rootKey) {
setPreferencesFromResource(R.xml.prefs, rootKey);
}
}
LatinIMESettingsFragment fragment = new LatinIMESettingsFragment();

@Override
protected void onCreate(Bundle icicle) {
fragment = new LatinIMESettingsFragment();
...
SharedPreferences prefs = fragment.getPreferenceManager().getSharedPreferences();
prefs.registerOnSharedPreferenceChangeListener(this);
}
...
}
Сейчас я получаю исключение NullPointerException при попытке получить общие перфернсы
В этом ответе говорится, что мне нужно позвонить после того, как я закончу с onCreate , но я не совсем уверен, когда это должно произойти

Подробнее здесь: https://stackoverflow.com/questions/781 ... f-subclass
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»