本文介绍了如果一旦在RecyclerView中选中(如Flipkart价格范围),如何设置复选框为true的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

您好,如果用户检查一次并应用与flipkart价格过滤器相同的过滤器,您好可以帮助我如何在RecyclerView中设置选中的true复选框

Hello can any one help me how to set checked true checkbox in RecyclerView if user checked it once and apply filter same as flipkart price filter

这是我的代码:-

    final ResultGetCategory datum = moviesList.get(position);
    holder.label_category_name.setText(datum.getName());
    //checkbox click event handling

    holder.checkbox.setChecked(datum.isSelected());
    holder.checkbox.setTag(moviesList.get(position));

    SharedPreferences prefsCheckBox = getContext().getSharedPreferences(String.valueOf(holder.checkbox.getTag()), Context.MODE_PRIVATE);
    final SharedPreferences.Editor editorCheckbox = prefsCheckBox.edit();

    holder.checkbox.setTag(moviesList.get(position));
    holder.checkbox.setChecked(
            prefsCheckBox.getBoolean(String.valueOf(holder.checkbox.getTag()), false));
    holder.checkbox.setOnCheckedChangeListener(new
                                                       CompoundButton.OnCheckedChangeListener() {
                                                           @Override
                                                           public void onCheckedChanged(CompoundButton buttonView,
                                                                                        boolean isChecked) {
                                                               //add your code here when set checked changed


                                                               editorCheckbox.putBoolean(String.valueOf(holder.checkbox.getTag()),isChecked);
                                                               editorCheckbox.apply();
                                                           }
                                                       });

推荐答案

尝试而不是单击设置:

    holder.checkbox.setTag(moviesList.get(position));
    holder.checkBox.setChecked(
           prefs.getBoolean(
              String.valueOf(holder.checkbox.getTag(),false));
    holder.checkBox.setOnCheckedChangeListener(new 
         CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton buttonView, 
                     boolean isChecked) {
            //add your code here when set checked changed
            editor.putBoolean(
                String.valueOf(holder.checkbox.getTag()),isChecked);
            editor.apply();
        }
    });

此代码适用于ListView中的多个复选框每个复选框都有一个sharedpreferences布尔值,所有默认值为false.

this code work for multiple checkboxes in a ListVieweach checkbox have a sharedpreferences boolean value and all default is false.

您更新的代码:

    final ResultGetCategory datum = moviesList.get(position);
    holder.label_category_name.setText(datum.getName());
    //checkbox click event handling

    holder.checkbox.setChecked(datum.isSelected());
    holder.checkbox.setTag(moviesList.get(position));
/*
  //move commented lines to viewholder class or in constructor of 
      adapter
  //exactly these codes and dont change them
    SharedPreferences prefsCheckBox = 
       getContext().getSharedPreferences("checkbox", 
           Context.MODE_PRIVATE);
final SharedPreferences.Editor editorCheckbox = prefsCheckBox.edit();
*/
holder.checkbox.setTag(moviesList.get(position));
holder.checkbox.setChecked(

prefsCheckBox.getBoolean(
        String.valueOf(holder.checkbox.getTag()), false));
holder.checkbox.setOnCheckedChangeListener(new                                                    
          CompoundButton.OnCheckedChangeListener() {
       @Override
      public void onCheckedChanged(CompoundButton buttonView,                                                                                   
                                     boolean isChecked) {
  //add your code here when set checked changed



   editorCheckbox.putBoolean(
      String.valueOf(holder.checkbox.getTag()),isChecked);

        editorCheckbox.apply();
        }
 });

在测试此代码之前,请先从设备中删除您的应用,然后重新安装不要忘记更改首选项初始化的位置,因为它会在每个单元格中发生,并且不是真的.

before test this code erase your app from device and install it againDon't forget to change location of prefs initializing because it will happen for every cell and its not true.

这篇关于如果一旦在RecyclerView中选中(如Flipkart价格范围),如何设置复选框为true的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-29 12:16