【发布时间】:2015-06-03 01:45:55
【问题描述】:
我试图让我的列表视图在您单击“注册”按钮时更新“android.R.id.text1”行(两个列表视图行的顶行)的颜色。该课程还在创建时调用 colourCodeCourses() 并且可以正常显示课程颜色,但是当我单击注册按钮时,无论我尝试了什么,我都无法让我的列表视图更新文本的颜色,直到我点击“返回”并重新打开活动视图。此时,列表视图以正确的颜色显示。 (这些不是所有的方法和实例变量,只是相关的)。任何帮助表示赞赏。
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);
}
}
【问题讨论】:
标签: java android eclipse listview nexus-7