android - 使用 RecyclerView 上的多个单选按钮的单选按钮

标签 android

 @Override
    public void onBindViewHolder(@NonNull StateViewHolder stateViewHolder, int i) {
            GetStateApiResponse getStateApiResponse = state.get(i);
        stateViewHolder.btnstate.setText(getStateApiResponse.getStateName().toString());
        stateViewHolder.disttCount.setText(getStateApiResponse.getCount().toString());

       stateViewHolder.radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
           @Override
           public void onCheckedChanged(RadioGroup group, int checkedId) {

               RadioButton checked_rb = group.findViewById(checkedId);

               if (lastChecked != null) {
                   lastChecked.setChecked(false);
               }
               //store the clicked radiobutton
               lastChecked = checked_rb;
           }
       });   

}

如果我单击单选按钮而不是自动取消选中,则此代码在 recyclerview 上无法正常工作

最佳答案

这个问题的正确答案

private RadioButton lastChecked
...
    @Override
        public void onBindViewHolder(@NonNull StateViewHolder stateViewHolder, int i) {
                GetStateApiResponse getStateApiResponse = state.get(i);
            stateViewHolder.btnstate.setText(getStateApiResponse.getStateName().toString());
            stateViewHolder.disttCount.setText(getStateApiResponse.getCount().toString());


            if (lastChecked!=null && lastCheckedPos!=-1 && i==lastCheckedPos)
            {
                lastChecked.setChecked(true);
            }
            else
            {
                stateViewHolder.btnstate.setChecked(false);
            }



            stateViewHolder.btnstate.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {

                    for(GetStateApiResponse tempModel: state)
                        tempModel.setSetchecked(false);

                    state.get(i).setSetchecked(true);
                    lastCheckedPos=i;

                    if(null != lastChecked && !v.equals(lastChecked))
                        lastChecked.setChecked(false);
                    lastChecked = (RadioButton) v;
                    lastChecked.setChecked(true);


                }
            });


        }

关于android - 使用 RecyclerView 上的多个单选按钮的单选按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54689765/

相关文章:

android - 请求权限 : How to wait until granted?

java - 从 ViewHolder 获取适配器实例

java - Google API ClusterManager 自定义项目渲染

android - 滚动自定义 ListView 后复选框未选中...!

android - React-Native 最低 Android API 级别

javascript - 如何重置移动 JQuery 表单

android - 如何在新层中使用phonegap打开外部链接?

java - Retrofit 2 : response. body()为空,但状态码为200

android - 如何在android中制作自定义拆分(底部)菜单

android - 下载管理器安卓 : Download Complete