2016-01-15 3 views
0

У меня есть последующая кода, реализованная использовать фрагменты для представлений мазковых:вызова методов Фрагментов Создание

public class FragmentMain extends Fragment { 
    public FragmentMain() { 
    } 

    public static FragmentMain newInstance() { 
     FragmentMain fragment = new FragmentMain(); 
     return fragment; 
    } 

    public TextView STRScore; 

    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     View rootView = inflater.inflate(R.layout.fragment_main, container, false); 
     return rootView; 
     loadSavedPreferences(); 
    } 

Я пытаюсь загрузить некоторые SharedPreferences как метод при создании фрагмента. Как я могу назвать метод без использования NPE?

EDIT: мой метод

public void loadSavedPreferences() { 
     SharedPreferences sharedPreferences = PreferenceManager 
       .getDefaultSharedPreferences(getContext()); 
     String name = sharedPreferences.getString("storedSTRScore", "12"); 
     STRScore.setText(name); 
+1

Я не вижу, что связано с SharedPreferences к Snipper вы поделились. –

ответ

0

Вы можете загрузить SharedPreferences в одном из методов жизненного цикла, который имеет Activity контекст готовы, так как вам нужно, чтобы получить контекст предпочтения. Так что все после onAttach() должно работать. Вы можете даже поместить его в свой метод onCreateView.

SharedPreferences preferences = getActivity().getSharedPreferences("myPrefs", Context.MODE_PRIVATE);

или если вы хотите по умолчанию предпочтения

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getActivity());

+0

Как мне поместить его после моего метода onCreateView? Я получаю, что метод является недостижимой ошибкой, так как он ниже оператора return. –

+0

Просто вызовите метод 'loadSavedPreferences();' перед оператором return. –

+0

@Michael Zhang. Посмотрев на новый код, вам сначала нужно назначить переменную 'STRScore', посмотрев ее в свой метод' onCreateView', используя 'STRScore = rootView.findViewById (R.id.STRScore)'. Замените R.id.STRScore тем, что действительно находится в вашем файле макета фрагмента. –

Смежные вопросы