So I am trying to use ListView to set the color of the text in my TextView to green when its clicked.
I also use Filterable with EditText's addTextChangedListener to search for items in my ArrayList.
The problem is when I click on a item the textview changes to green (as intended) but when i try to search something else I see the color of the TextView inside the first item in my ListView goes green and the one i clicked changes back to white automatically.
EditText onTextChnagedListener:
editText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if(TextUtils.isEmpty(s.toString()))
{
listView.clearTextFilter();
}
else
{
listView.setFilterText(s.toString());
adapter.getFilter().filter(s.toString());
}
}
}
@Override
public void afterTextChanged(Editable s) {
}
});
The onItemClickListener of ListView:
View selectedView = null;
int selectedPositon = -1;
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
view.setSelected(true);
if(selectedPosition != -1)
{
if(selectedView != null)
{
TextView textView = selectedView.findViewById(R.id.search_frag_listview_item_songname);
textView.setTextColor(Color.parseColor("#FFFFFF"));
selectedPosition = (int) id;
TextView selectedView = view.findViewById(R.id.search_frag_listview_item_songname);
selectedView.setTextColor(Color.parseColor("#00FF00"));
selectedView.setSelected(false);
}
selectedPosition = (int) id;
selectedView = view;
}
else
{
view.setSelected(true);
TextView textView = view.findViewById(R.id.search_frag_listview_item_songname);
textView.setTextColor(Color.parseColor("#00FF00"));
selectedView = view;
selectedPosition = (int) id;
}
adapter.notifyDataSetChanged();
}
});
Example image of when I click item in ListView:

After I search something else without clicking on any item:

How do I prevent the color of the TextView I selected from automatically changing in my ListView?
Thanks for the help!
Try this one.