I have a list of contacts with check boxes. Also I have to create a pop up menu onClick of a image on toolbar.
The pop up menu shows select all option.
So onclick of select all I want all check boxes of list to get selected.
Check box I have defined in an adapter.
Adapter:
public class InviteAdapter extends RecyclerView.Adapter<InviteAdapter.MyViewHolder> {
private ArrayList<Contact> contactArrayList;
private Context mContext;
public class MyViewHolder extends RecyclerView.ViewHolder {
public TextView name;
private CheckBox checkBox;
public MyViewHolder(View view) {
super(view);
name = (TextView) view.findViewById(R.id.textContactName);
checkBox = (CheckBox) view.findViewById(R.id.checkBox);
}
}
public InviteAdapter(Context context, ArrayList<Contact> contactArrayList) {
this.contactArrayList = contactArrayList;
this.mContext = context;
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(parent.getContext())
.inflate(R.layout.invite_contact_item, parent, false);
return new MyViewHolder(itemView);
}
@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
Contact contact = contactArrayList.get(position);
holder.name.setText(contact.getmFullName());
}
@Override
public int getItemCount() {
return contactArrayList.size();
}
}
Activity:
public class InviteContactsActivity extends AppCompatActivity {
private RecyclerView recyclerView;
private InviteAdapter adapter;
private ArrayList<Contact> contactList;
private ContactTableHelper contactDb;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_invite_contacts);
Toolbar toolbar = (Toolbar) findViewById(R.id.main_toolbar);
TextView mTitle = (TextView) findViewById(R.id.toolbar_title);
mTitle.setText("Invite Contacts");
if (toolbar != null) {
toolbar.setTitle("");
setSupportActionBar(toolbar);
}
ImageView back = (ImageView)findViewById(R.id.imageBack);
back.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
finish();
}
});
final ImageView selectAll = (ImageView)findViewById(R.id.selectAll);
selectAll.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
PopupMenu popup = new PopupMenu(InviteContactsActivity.this,selectAll);
popup.getMenuInflater().inflate(R.menu.pop_up_menu, popup.getMenu());
popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
public boolean onMenuItemClick(MenuItem item) {
return true;
}
});
popup.show();
}
});
contactDb = new ContactTableHelper(InviteContactsActivity.this);
contactList = contactDb.getAllContacts();
recyclerView = (RecyclerView) findViewById(R.id.recycler_view);
recyclerView.setHasFixedSize(true);
RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(InviteContactsActivity.this);
recyclerView.setLayoutManager(mLayoutManager);
recyclerView.addItemDecoration(new DividerItemDecoration(this, LinearLayoutManager.VERTICAL));
recyclerView.setItemAnimator(new DefaultItemAnimator());
adapter = new InviteAdapter(InviteContactsActivity.this, contactList);
recyclerView.setAdapter(adapter);
}
}
Thank you..
Aucun commentaire:
Enregistrer un commentaire