Динамический счетчик Android во фрагменте

#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);