У меня была такая же проблема, когда мое приложение зависало при заполнении счетчика.В моем случае бланк, который я заполнял, был определен в XML-файле фрагмента, поэтому хитрость заключалась в том, чтобы найти FindViewById ().Я вижу, в вашем случае вы пытались использовать getActivity ():
sp = (Spinner) getActivity().findViewById(R.id.spinner1);
Я также пытался использовать оба getActivity () и getView (), и оба вызвали сбои (нулевой спиннер и исключение NULL Pointer соответственно).
Я наконец заставил это работать, заменив getActivity () на представление фрагмента.Я сделал это, заполнив счетчик, когда вызывается onCreateView ().Вот некоторые фрагменты из моего окончательного кода:
private Spinner spinner;
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
View view = inflater.inflate(R.layout.myFragmentXmlFile, container, false);
// Now use the above view to populate the spinner.
setSpinnerContent( view );
...
}
private void setSpinnerContent( View view )
{
spinner = (Spinner) view.findViewById( R.id.mySpinner );
...
spinner.setAdapter( adapter );
...
}
Поэтому я передал представление фрагмента в свою функцию и сослался на это представление для настройки счетчика.Это сработало отлично.(И быстрый отказ от ответственности - я новичок в Android сам, поэтому, возможно, некоторые из вышеупомянутой терминологии могут быть исправлены или уточнены, если это потребуется более опытным людям.)
Надеюсь, это поможет!