为什么不能在微调器中选择项目?

时间:2019-07-15 16:42:58

标签: android spinner

当我选择微调器时,我可以看到列表中的所有项目,但是当我单击它们时,它们没有被选中并且微调器关闭。

我在这里尝试了不同的方法,但是没有找到适合我的方法。当我检查日志时,列表中的所有项目都正确,我只是无法选择它们。我已经测试了一个常规的字符串列表,可以单击它以确保它不是微调器中的错误。

ArrayAdapter<String> adapter = new ArrayAdapter<>(this,
                    android.R.layout.simple_spinner_dropdown_item, item);
            adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            courseSpinner.setAdapter(adapter);
            courseSpinner.setSelection(1);

private void retrieveCourse() {
       mCourseRepository.retrieveCourseTask().observe(this, new Observer<List<Course>>() {
            @Override
            public void onChanged(@Nullable List<Course> courses) {
                if (mCourse.size() > 0) {
                    mCourse.clear();
                }
                if (courses != null) {
                        mCourse.addAll(courses);

                        int count = courses.size() - 1;
                        while (count >= 0) {
                             item.add(courses.get(count).getTitle());
                             Log.d(TAG, "onChanged: " + item);
                             count = count - 1;
                        }
                 }
                 mAdapter.notifyDataSetChanged();
            }
        });
}

当我选择一个项目时,我希望该项目出现在微调框内。相反,即使选择了一个项目,微调框仍保持空白。

1 个答案:

答案 0 :(得分:0)

我不确定是否很好地理解您的问题,但是要管理微调器中的项目单击,您必须实现此侦听器

spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
            //both work
            String selectedItemText = (String) parent.getItemAtPosition(position);
            String selectedItemText  = spinner.getSelectedItem().toString();

        }

        @Override
        public void onNothingSelected(AdapterView<?> parent) {

        }
    });