У меня есть CustomListView:
public class CustomView extends View {
private String[] hoursList = getResources().getStringArray(R.array.hours); ;
private String[] minutesList = getResources().getStringArray(R.array.minutes);;
private ListView listView;
private HourAdapter hourAdapter;
private MinuteAdapter minuteAdapter;
public CustomView(Context context) {
super(context);
}
public CustomView(Context context, ViewGroup viewGroup) {
super(context);
inflate(context, R.layout.time_picker_test, viewGroup);
listView = viewGroup.findViewById(R.id.minutes_list);
minuteAdapter = new MinuteAdapter(context, minutesList);
listView.setAdapter(minuteAdapter);
listView = viewGroup.findViewById(R.id.hours_list);
hourAdapter = new HourAdapter(context, hoursList);
listView.setAdapter(hourAdapter);
}
}
и классы адаптеров:
public class MinuteAdapter extends BaseAdapter {
private LayoutInflater lInflater;
private String[] minutesValueList;
public MinuteAdapter(Context context, String[] minutesValueList) {
lInflater = LayoutInflater.from(context);
this.minutesValueList = minutesValueList;
}
@Override
public int getCount() {
return minutesValueList.length;
}
@Override
public Object getItem(int position) {
return minutesValueList[position];
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView;
if (view == null) {
view = lInflater.inflate(R.layout.row, parent, false);
TextView textMinutes = view.findViewById(R.id.textRow);
textMinutes.setText(minutesValueList[position]);
}
if (view.getVisibility() == View.VISIBLE) {
if (position ==2) {
view.setBackgroundColor(Color.BLUE);
} else {
view.setBackgroundColor(Color.WHITE);
}
}
TextView textMinutes = view.findViewById(R.id.textRow);
textMinutes.setText(minutesValueList[position]);
return view;
}
}
Мне нужно, чтобы здесь (см. Рисунок) в среднем положении (где сейчас 11,2 и PM ) всегда был СИНИМ цветом (независимо от того, какой элемент в данный момент находится в этой позиции). Я использовал это:
if (view.getVisibility() == View.VISIBLE) {
if (position ==2) {
view.setBackgroundColor(Color.BLUE);
} else {
view.setBackgroundColor(Color.WHITE);
}
}
, но это меняет цвет элемента. Но мне нужно, чтобы только ячейка (середина видимых элементов) всегда была СИНЕЙ.