Spinner не заполнен ArrayAdapter - PullRequest
0 голосов
/ 02 декабря 2018

Так что мой счетчик не заполняется программно:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {

    View view = inflater.inflate(R.layout.fragment_first_boot__language_selection, container, false);
    setupSpinner(view, R.id.firstLanguageSpinner, R.array.languagesSpinner);
    setupSpinner(view, R.id.secondLanguageSpinner, R.array.languagesSpinner);
    // Inflate the layout for this fragment
    return inflater.inflate(R.layout.fragment_first_boot__language_selection, container, false);
}

private void setupSpinner(View view, int spinnerResourceId, int arrayResourceId) {
    Spinner spinner = view.findViewById(spinnerResourceId);
    spinner.setSelection(1);

    //Adapts strings into CharSequence.
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
            this.getContext(), arrayResourceId, android.R.layout.simple_spinner_item);

    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner.setAdapter(adapter);
}

Однако я не могу понять, почему бы и нет?Я бы заполнил его через XML, однако этот код не включает другие функции, которые я добавил.Например, в setupSpinner я добавил событие onClickListener, которое не работало.

1 Ответ

0 голосов
/ 02 декабря 2018

В onCreateView вы должны использовать return view;, а не return inflater.inflate.... То, что вы делаете, надувает вторую копию фрагмента, которая не инициализируется с данными счетчика.

...