2015-03-30 4 views
0

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); 
    } 
} 

ответ

0

Вы должны установить свои стили в ListViewgetView() метод Adapter «s. Насколько я вижу, вы просто ищете TextView внутри ListView и задаете его цвет текста. Вы должны сохранить выбранное состояние в своем Adapter и установить цвет вашего TextView соответственно.

Вот эта ссылка: http://www.vogella.com/tutorials/AndroidListView/article.html