Я пишу фрагмент кода с расписанием, указанным в списке. Цель состоит в том, чтобы изменить фон определенного элемента в списке между определенным временем. Например, когда его 3:40, элемент, который говорит 3: 00-4: 00, будет иметь зеленый фон, а когда он станет 4:00, фон вернется к белому. Есть идеи, как это сделать? Вот мой соответствующий код.Как вы пассивно меняете фон одного элемента в списке?
final ListView schedule = (ListView) findViewById(R.id.schedule);
String[] myKeys = getResources().getStringArray(R.array.friday_schedule);
schedule.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, myKeys));
Calendar c = Calendar.getInstance();
final int hour = c.get(Calendar.HOUR);
if(hour<6&&hour>5)
{
schedule.item(0).setBackgroundColor(Color.CYAN);
}
Кроме того, для справки, это вопрос похож this. И просто скажите, не забыл ли я приложить часть своего кода. Благодаря!
Если я создаю подкласс ArrayAdapter, то он: a) должен иметь определенное имя b) должен иметь не только метод getView? А также, как бы связать подкласс с моим списком? будет schedule.setAdapter (новый ArrayAdapter (className, android.R.layout.simple_list_item_1, myKeys)); Работа? –
Вы должны дать вашему подклассу имя; это может быть любое имя, но, по соглашению, это будет нечто вроде «ScheduleAdapter». Если вы можете определить час из позиции списка, вам не нужно больше конструктора и 'getView()' override. Я обновил свой ответ с помощью некоторого примера кода. –
Я думаю, вы хотели написать ScheduleAdapter вместо arrayadapter для конструктора. Правильно? –