Im, пытаясь сделать мой список, обновить цвет строки «android.R.id.text1» (верхняя строка из двух строк списка), когда вы нажимаете кнопку «Регистрация». Класс также вызывает colourCodeCourses() для создания, и это отлично работает, чтобы правильно отображать цвета курса, однако, когда я нажимаю кнопку регистрации, независимо от того, что я пробовал, я не могу заставить свой список просматривать цвет текста до тех пор, пока я не нажмите «назад» и снова откройте представление «Действия». В этот момент список отображается в правильном цвете. (Это не все методы и переменные экземпляра, только соответствующие). Любая помощь приветствуется.Android ListView Update Color
private ListView listView;
private ArrayAdapter<Course> courseArrayAdapter;
private AccessEnrollment accessEnroll;
private ArrayList<Course> comparisonList;
private Degree degree;
public void buttonEnrollOnClick(View v){
int position = listView.getCheckedItemPosition();
Course course = (Course)listView.getItemAtPosition(position);
TextView courseID = (TextView)listView.findViewById(android.R.id.text1);
TextView courseName = (TextView)listView.findViewById(android.R.id.text2);
accessEnroll.insertEnrollmentData(course);
degree.addCourse(course);
colourCodeCourses(position, courseID, courseName, true);
courseArrayAdapter.notifyDataSetChanged();
}
private void colourCodeCourses(int position, TextView courseTitle, TextView courseDescription, boolean newEnroll) {
displayGrade = "";
if(!newEnroll){
if (degree.getCourse(position).getGrade()!="N")
{
displayGrade = " {" + degree.getCourse(position).getGrade() + "} ";
}
courseTitle.setText(degree.getCourse(position).getCourseID()+ " " + displayGrade);
courseDescription.setText(degree.getCourse(position).getCourseName());
if (comparisonList.contains(degree.getCourse(position)))
{
if (degree.getCourse(position).getGrade().equals("IP")){
courseTitle.setTextColor(Color.rgb(0,0,160));
}else{
courseTitle.setTextColor(Color.rgb(0, 160, 0));
}
}
else
{
courseTitle.setTextColor(Color.rgb(160, 0, 0));
}
}else{
courseTitle.setTextColor(Color.BLUE);
}
}