2015-10-19 69 views
0

我试图做一个RecyclerView,其中每个recyclerItem有3个单选按钮。一旦我选择了其中一个,我想获得与单选按钮选择一致的对象。我的适配器在下面...当我点击单选按钮时,没有任何反应。似乎永远不会传递onCheckedChanged()方法...我做错了什么?我如何处理radioLike.OnCheckedChangeListener?或者是方法onBindViewHolder缺乏什么?radiogroup处理回收站视图适配器内部的单选按钮选择

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; 
      } 
     } 
    } 
} 
+0

什么问题?有错误吗?如果是这样,请编辑您的问题以包含错误或您期望的内容以及您所得到的内容。见[问]。 – 8bittree

+0

对不起,我会尽量做得更清楚明确!这是我第一次在这里编辑我的问题。请问你能帮帮我吗? – Lili

+0

正如您所料,'group.getId()'返回RadioGroup标识 – tachyonflux

回答

0

我想你想哪个单选按钮

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; 
     } 
    }