Объявите компоненты элемента списка как окончательные за пределами вашего setOnClickListener или того, что вы хотите применить к вашему элементу списка, например:
final View yourView;
final TextView yourTextView;
И в переопределении onClick или любого другого метода, который вы используете, просто установите цвета, как это необходимо:
yourView.setBackgroundColor(Color.WHITE/*or whatever RGB suites good contrast*/);
yourTextView.setTextColor(Color.BLACK/*or whatever RGB suites good contrast*/);
Или без окончательного объявления, если, скажем, вы реализуете onClick () для настраиваемого адаптера для заполнения списка, это то, что я использовал в getView () для моего setOnClickListener / onClick ():
//reset color for all list items in case any item was previously selected
for(int i = 0; i < parent.getChildCount(); i++)
{
parent.getChildAt(i).setBackgroundColor(Color.BLACK);
TextView text=(TextView) parent.getChildAt(i).findViewById(R.id.item);
text.setTextColor(Color.rgb(0,178,178));
}
//highlight currently selected item
parent.getChildAt(position).setBackgroundColor(Color.rgb(0,178,178));
TextView text=(TextView) parent.getChildAt(position).findViewById(R.id.item);
text.setTextColor(Color.rgb(0,178,178));