微调框未填充ArrayAdapter

时间:2018-12-02 00:45:47

标签: android android-spinner

所以我的微调器没有被编程填充:

@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 :(得分:3)

onCreateView中,您应该使用return view;,而不是return inflater.inflate...。您正在执行的操作是扩大片段的第二个副本,该副本未使用微调器数据初始化。