I have a recyclerview where i want to change the color of the selected item and re change it on unselected. I have used an string arraylist and an interface for that here is interface code in adapter -
public interface Callback{
void onItemClicked(String i_name, boolean longClick);
}
Here is onclick and onlongclick code-
@Override
public void onClick(View view) {
String[] tag = ((String) view.getTag()).split(":");
String i_name = tag[1];
Toast.makeText(context, ""+i_name, Toast.LENGTH_SHORT).show();
if(callback != null)
{
callback.onItemClicked(i_name,false);
}
}
@Override
public boolean onLongClick(View view) {
String[] tag = ((String) view.getTag()).split(":");
String i_name = tag[1];
if(callback != null)
{
callback.onItemClicked(i_name,false);
}
return false;
}
Here is the toggleselected code -
public void toggleSelected(String i_name)
{
final boolean newState = !selectedList.contains(i_name);
if(newState)
{
// i want to give background color to i_name
selectedList.add(i_name);
Toast.makeText(context, "selected list1- "+selectedList, Toast.LENGTH_SHORT).show();
}
else
{
selectedList.remove((String) i_name);
Toast.makeText(context, "selected list2- "+selectedList, Toast.LENGTH_SHORT).show();
}
notifyDataSetChanged();
}
here is onItemClicked code from fragment -
@Override
public void onItemClicked(String i_name, boolean longClick) {
if(longClick)
{
((MyCategoryAdaptercheckbox) MyAdapter).toggleSelected(i_name);
}
else
{
((MyCategoryAdaptercheckbox) MyAdapter).toggleSelected(i_name);
}
}
This is the code from onbindviewholder where i am settingthe tag -
getMyCategoryAdapter1 = category_name.get(i);
viewHolder.view.setActivated(selectedList.contains(i));
viewHolder.view.setTag("items:" + getMyCategoryAdapter1.getC_name());
viewHolder.view.setOnClickListener(this);
viewHolder.view.setOnLongClickListener(this);
I want to give background color to i_name on toggleselected() method.HOw can i do this.Please help.Thanks in advance.