当前位置: 代码迷 >> Android >> radiogroup处理了回收器视图适配器中的radiobutton的选择
  详细解决方案

radiogroup处理了回收器视图适配器中的radiobutton的选择

热度:6   发布时间:2023-08-04 10:02:37.0

我正在尝试做一个RecyclerView ,其中每个recyclerItem具有3个单选按钮。 选择其中一个后,我想获取与单选按钮选择一致的对象。 我的适配器在下面...当我单击单选按钮时,没有任何反应。 好像永远不会传递onCheckedChanged()方法...我在做什么错? 如何使用radioLike.OnCheckedChangeListener处理? 还是方法onBindViewHolder缺少某些内容?

public class LikeListAdapter extends RecyclerView.Adapter<LikeListAdapter.LikeItemViewHolder> {

    private List<Goals> goalsList;

    public LikeListAdapter(List<Goals> goalsList) {
        this.goalsList = goalsList;
    }

    @Override
    public LikeItemViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        Context context = parent.getContext();
        LayoutInflater inflater = LayoutInflater.from(context);
        View view = inflater.inflate(R.layout.recycler_item_like, parent, false);
        return new LikeItemViewHolder(view);
    }


    @Override
    public void onBindViewHolder(LikeItemViewHolder holder, int position) {
        Goals goals = goalsList.get(position);
        if (goals != null && getItemCount() > 0) {
            holder.goalsDescriptionTextView.setText(goals.getDescription());
        }

    }

    @Override
    public int getItemCount() {
        return goalsList.size();
    }




    public class LikeItemViewHolder extends RecyclerView.ViewHolder implements RadioGroup.OnCheckedChangeListener {
        @Bind(R.id.description_goalsTextView)
        TextView goalsDescriptionTextView;
        @Bind(R.id.happy_radio)
        RadioButton happyRadioButton;
        @Bind(R.id.soso_radio)
        RadioButton sosoRadioButton;
        @Bind(R.id.angry_radio)
        RadioButton angryRadioButton;
        @Bind(R.id.radio_like)
        RadioGroup radioLike;


        public LikeItemViewHolder(View itemView) {
            super(itemView);
            ButterKnife.bind(this, itemView);
            radioLike.setOnCheckedChangeListener(this); ???

        }


        @Override 
        public void onCheckedChanged(RadioGroup group, int checkedId) {
            Log.e("group","" + group);
            Log.e("checkedId","" + checkedId);
            switch (group.getId()) {
                case (R.id.happy_radio):
                    Log.e("aqui", "happy");
                    break;
                case (R.id.soso_radio):
                    Log.e("aqui", "soso");
                    break;
                case (R.id.angry_radio):
                    Log.e("aqui", "angry");
                    break;
            }
        }
    }
}

我想你想要哪个单选按钮

 public class LikeItemViewHolder extends RecyclerView.ViewHolder implements CompoundButton.OnCheckedChangeListener {
.......
  happyRadioButton.setOnCheckedChangeListener(this);
        sosoRadioButton.setOnCheckedChangeListener(this);
        angryRadioButton.setOnCheckedChangeListener(this);
  @Override
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        switch (buttonView.getId()) {
            case (R.id.happy_radio):
                Log.e("aqui", "happy");
                break;
            case (R.id.soso_radio):
                Log.e("aqui", "soso");
                break;
            case (R.id.angry_radio):
                Log.e("aqui", "angry");
                break;
        }
    }
  相关解决方案