How to properly DEselect an item on RecyclerView?
up vote
0
down vote
favorite
I followed this answer:
https://stackoverflow.com/a/30046476/8793443
and got it to work: only one item is selected at a time (which is what I want).
However, when the same item is clicked for a second time, it remains selected. How can I deselect it so that it goes back to it's original color background?
Any help is appreciated.
Thanks!
android android-recyclerview recycler-adapter
add a comment |
up vote
0
down vote
favorite
I followed this answer:
https://stackoverflow.com/a/30046476/8793443
and got it to work: only one item is selected at a time (which is what I want).
However, when the same item is clicked for a second time, it remains selected. How can I deselect it so that it goes back to it's original color background?
Any help is appreciated.
Thanks!
android android-recyclerview recycler-adapter
Have you tried using isSelected()?
– Ayush Khare
Nov 8 at 7:03
Yes. Unfortunately, I haven't figured out how to make it work given the way it's done on the example from my link. That is,notifyItemChanged(selectedPos)
is used twice (once with the previous position and then with the current position). However, when the same item is selected,onBindViewHolder
only gets called once. How do you suggest usingisSelected()
?
– W. Stalin R.
Nov 8 at 14:20
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
I followed this answer:
https://stackoverflow.com/a/30046476/8793443
and got it to work: only one item is selected at a time (which is what I want).
However, when the same item is clicked for a second time, it remains selected. How can I deselect it so that it goes back to it's original color background?
Any help is appreciated.
Thanks!
android android-recyclerview recycler-adapter
I followed this answer:
https://stackoverflow.com/a/30046476/8793443
and got it to work: only one item is selected at a time (which is what I want).
However, when the same item is clicked for a second time, it remains selected. How can I deselect it so that it goes back to it's original color background?
Any help is appreciated.
Thanks!
android android-recyclerview recycler-adapter
android android-recyclerview recycler-adapter
asked Nov 8 at 6:49
W. Stalin R.
12
12
Have you tried using isSelected()?
– Ayush Khare
Nov 8 at 7:03
Yes. Unfortunately, I haven't figured out how to make it work given the way it's done on the example from my link. That is,notifyItemChanged(selectedPos)
is used twice (once with the previous position and then with the current position). However, when the same item is selected,onBindViewHolder
only gets called once. How do you suggest usingisSelected()
?
– W. Stalin R.
Nov 8 at 14:20
add a comment |
Have you tried using isSelected()?
– Ayush Khare
Nov 8 at 7:03
Yes. Unfortunately, I haven't figured out how to make it work given the way it's done on the example from my link. That is,notifyItemChanged(selectedPos)
is used twice (once with the previous position and then with the current position). However, when the same item is selected,onBindViewHolder
only gets called once. How do you suggest usingisSelected()
?
– W. Stalin R.
Nov 8 at 14:20
Have you tried using isSelected()?
– Ayush Khare
Nov 8 at 7:03
Have you tried using isSelected()?
– Ayush Khare
Nov 8 at 7:03
Yes. Unfortunately, I haven't figured out how to make it work given the way it's done on the example from my link. That is,
notifyItemChanged(selectedPos)
is used twice (once with the previous position and then with the current position). However, when the same item is selected, onBindViewHolder
only gets called once. How do you suggest using isSelected()
?– W. Stalin R.
Nov 8 at 14:20
Yes. Unfortunately, I haven't figured out how to make it work given the way it's done on the example from my link. That is,
notifyItemChanged(selectedPos)
is used twice (once with the previous position and then with the current position). However, when the same item is selected, onBindViewHolder
only gets called once. How do you suggest using isSelected()
?– W. Stalin R.
Nov 8 at 14:20
add a comment |
1 Answer
1
active
oldest
votes
up vote
0
down vote
accepted
The OnClick event must be this instead:
@Override
public void onClick(View view) {
if (selectedPos == getAdapterPosition()) {
selectedPos = RecyclerView.NO_POSITION;
notifyDataSetChanged();
return;
}
selectedPos = getAdapterPosition();
notifyDataSetChanged();
}
It works like a charm! Thanks to Quick learner's answer for inspiration.
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
0
down vote
accepted
The OnClick event must be this instead:
@Override
public void onClick(View view) {
if (selectedPos == getAdapterPosition()) {
selectedPos = RecyclerView.NO_POSITION;
notifyDataSetChanged();
return;
}
selectedPos = getAdapterPosition();
notifyDataSetChanged();
}
It works like a charm! Thanks to Quick learner's answer for inspiration.
add a comment |
up vote
0
down vote
accepted
The OnClick event must be this instead:
@Override
public void onClick(View view) {
if (selectedPos == getAdapterPosition()) {
selectedPos = RecyclerView.NO_POSITION;
notifyDataSetChanged();
return;
}
selectedPos = getAdapterPosition();
notifyDataSetChanged();
}
It works like a charm! Thanks to Quick learner's answer for inspiration.
add a comment |
up vote
0
down vote
accepted
up vote
0
down vote
accepted
The OnClick event must be this instead:
@Override
public void onClick(View view) {
if (selectedPos == getAdapterPosition()) {
selectedPos = RecyclerView.NO_POSITION;
notifyDataSetChanged();
return;
}
selectedPos = getAdapterPosition();
notifyDataSetChanged();
}
It works like a charm! Thanks to Quick learner's answer for inspiration.
The OnClick event must be this instead:
@Override
public void onClick(View view) {
if (selectedPos == getAdapterPosition()) {
selectedPos = RecyclerView.NO_POSITION;
notifyDataSetChanged();
return;
}
selectedPos = getAdapterPosition();
notifyDataSetChanged();
}
It works like a charm! Thanks to Quick learner's answer for inspiration.
answered Nov 13 at 5:37
W. Stalin R.
12
12
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53202718%2fhow-to-properly-deselect-an-item-on-recyclerview%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Have you tried using isSelected()?
– Ayush Khare
Nov 8 at 7:03
Yes. Unfortunately, I haven't figured out how to make it work given the way it's done on the example from my link. That is,
notifyItemChanged(selectedPos)
is used twice (once with the previous position and then with the current position). However, when the same item is selected,onBindViewHolder
only gets called once. How do you suggest usingisSelected()
?– W. Stalin R.
Nov 8 at 14:20