我有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);
}
}但这是变化的元素颜色。但是我需要只有细胞(可见元素的中间部分)总是蓝色的。
发布于 2020-08-06 10:50:19
如果希望中间行的中间单元格为蓝色,则将if (position ==2)更改为if (position ==1),数组中的索引从零开始,而不是从1开始。
https://stackoverflow.com/questions/63281036
复制相似问题