Доступ к настройкам другой активности - PullRequest
0 голосов
/ 06 января 2011

У меня есть вход в систему, в котором учетные данные хранятся в собственных SharedPreferences;затем я добавил два геттера для их чтения, что-то вроде

public String getUsername() {
  return getPreferences(MODE_PRIVATE).getString("#username", null);
}

, но это выдает NPE, когда я так его называю

String mUser = (new Login()).getUsername();

Кажется, что Activity не может прочитать свои предпочтения послепростой вызов конструктора, как если бы он находился в незавершенном состоянии.Я прочитал много связанных тем, но не смог найти решение.По сути, мне нужно поделиться этими учетными данными между действиями в моем приложении

1 Ответ

4 голосов
/ 06 января 2011

Это не то, как вы создаете действия.Когда вы просто вызываете new Login(), у него нет правильного контекста для доступа к общим настройкам.Вам также НИКОГДА не следует звонить new в классе, который расширяет Activity или Service.Классы android работают не так.

Вам понадобится способ получить ссылку на Activity.

Но, похоже, ваш дизайн не верный.Вам не нужно искать предпочтения другого вида деятельности.Если вы это сделаете, просто поместите его в defaultSharedPrefernces.

...