带有 CheckBox setChecked(true) 的 Android Spinner 不起作用

Mah*_*dad 5 android

如果我尝试设置 CheckBox 的选中状态它不起作用,我已经阅读了其他人的许多线程,我所能得到的只是它每次都返回一个不同的复选框,但我正在设置这个新复选框,所以为什么它没有在我的微调器中检查?

 classesName.setAdapter(new SpinnerAdapter() {

        @Override
        public void unregisterDataSetObserver(DataSetObserver observer) {


        }

        @Override
        public void registerDataSetObserver(DataSetObserver observer) {


        }

        @Override
        public boolean isEmpty() {

            return false;
        }

        @Override
        public boolean hasStableIds() {

            return false;
        }

        @Override
        public int getViewTypeCount() {

            return 0;
        }

        @Override
        public View getView(int arg0, View arg1, ViewGroup arg2) {

            LayoutInflater inflater = Registeration.this.getLayoutInflater();
            View spinView = inflater.inflate(R.layout.classes_registeration_ddl, null);
                CheckBox rbtn = (CheckBox) spinView.findViewById(R.id.radioButtonClassesReg);
                    rbtn.setChecked(true);

return spinView;

        }


        @Override
        public int getItemViewType(int arg0) {

            return 0;
        }

        @Override
        public long getItemId(int arg0) {

            return arg0;
        }

        @Override
        public Object getItem(int arg0) {

            return classesArr[arg0];
        }

        @Override
        public int getCount() {

            return classesArr.length;
        }

        @Override
        public View getDropDownView(int position, View convertView, ViewGroup parent) {

            LayoutInflater inflater = Registeration.this.getLayoutInflater();
            View spinView = inflater.inflate(R.layout.classes_registeration_ddl, null);
                CheckBox rbtn = (CheckBox) spinView.findViewById(R.id.radioButtonClassesReg);
                    rbtn.setChecked(true);
return spinView;
            }


});
Run Code Online (Sandbox Code Playgroud)

neu*_*ron 1

原因是 android ListView 的代码在 getDropDownView 之后运行以跟踪所选状态。您可以使用自定义 CheckBox 类来解决此问题,该类重写 isChecked 并根据父数据返回 true/false。