#android #fragment #spinner
#Android #фрагмент #счетчик
Вопрос:
мне нужна помощь. Я просмотрел другие сообщения и попытался сделать то же самое, но все решения не работают. Я пытаюсь создать счетчик с динамическими данными, но всегда перестаю работать…
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_main, container,
false);
final List<String> list=new ArrayList<String>();
list.add("Item 1");
list.add("Item 2");
list.add("Item 3");
list.add("Item 4");
list.add("Item 5");
Spinner s = (Spinner) rootView.findViewById(R.id.spinner1);
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String(this.getActivity(), R.array.spinnerItems, list);
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
//ArrayAdapter<?> adapter = ArrayAdapter.createFromResource(getActivity().getBaseContext(), R.array.spinnerItems, android.R.layout.simple_spinner_item);
s.setAdapter(dataAdapter);
return rootView;
}
Пожалуйста, как заставить его работать?
Комментарии:
1. пожалуйста, опубликуйте свой logcat.
Ответ №1:
Попробуйте этот способ
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(getActivity(),android.R.layout.simple_spinner_item, locations);
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
s.setAdapter(dataAdapter);
и убедитесь, что ваш фрагмент успешно подключен к вашей активности, чтобы этого getActivity()
не NULL
произошло.
Ответ №2:
Я считаю, что мы должны вызвать getActivity()
in или after onActivityCreated()
, так как до этого он вернется null
.
Итак, переместите код для привязки параметров счетчика onActivityCreated()
и посмотрите, что произойдет.
Кроме того, если вы сможете опубликовать журнал ошибок, это поможет другим предложить хорошие решения.
Надеюсь, это поможет.
Ответ №3:
Вместо this.getActivity()
замены getActivity()
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(getActivity(),android.R.layout.simple_spinner_item, locations);