如何使用复选框在recyclerview中获取所选项目

时间:2016-09-02 07:28:43

标签: android

如何使用复选框

在recyclerview中获取所选项目

This is my example view

例如:检查项目1,2,3和4。当我点击按钮创建它将使用他们的名字为文本选择项目。

这是我的观看者

public class UserViewGroupHolder extends RecyclerView.ViewHolder {

    @Bind(R.id.image_account)
    CircleImageView mImageAccount;
    @Bind(R.id.text_contact_email)
    TextView mTextContactEmail;
    @Bind(R.id.text_contact_name)
    TextView mTextContactName;
    @Bind(R.id.check_box_user)
    CheckBox mCheckBoxUser;

    public UserViewGroupHolder(View itemView) {
       super(itemView);
       ButterKnife.bind(this, itemView);
    }

    public void bind(final Account account, final User contact) {
       itemView.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {

        }
    });

    mTextContactEmail.setText(contact.getEmail());
    mTextContactName.setText(contact.getDisplayName());


   }
}

这是我对onBindViewholder的活动

@Override
public void onBindViewHolder(final UserViewGroupHolder holder, int position) {
        holder.bind(mAccount, mUsers.get(position));

}

1 个答案:

答案 0 :(得分:0)

  

这是我对onBindViewholder的活动

我想你的意思是适配器,而不是活动。

mTextContactEmail.setText(contact.getEmail());
mTextContactName.setText(contact.getDisplayName());

应该在bind(...)

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

    }
}

不得在持有人的itemView上设置,而是在"创建"选项菜单中的按钮。 您可以通过几种方式获取特定视图的已检查状态。一个*是保留在用户类布尔字段"检查"使用getter / setter,并在用户列表中使用 for loop 编写函数保存在适配器中,返回已检查状态的用户列表" true"。 当然,必须在bind(...)中更改用户的已检查状态。

使用创建按钮单击名称的Toast现在很容易:您的新适配器函数返回已检查用户的列表(也可以返回带有其名称的字符串列表)。

*请注意,如果User类之前是不可变的,这可能会使User类变为可变。

噢,你可以根据持有者或观点了解你所检查的状态知识,因为它们可以重复使用。如果有很多用户(超过10个),这种状态会同时对少量ListView项目起作用,这真的很差。