Android ListView 更新颜色

Posted

技术标签:

【中文标题】Android ListView 更新颜色【英文标题】:Android ListView Update Colour 【发布时间】: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);
    

【问题讨论】:

【参考方案1】:

你必须在ListViewAdaptergetView()方法中设置你的样式。 据我现在所见,您只是在 ListView 内搜索 TextView 并设置其文本颜色。 您应该将选定的状态存储在您的 Adapter 中,并相应地设置您的 TextView 的颜色。

这里是链接:http://www.vogella.com/tutorials/AndroidListView/article.html

【讨论】:

以上是关于Android ListView 更新颜色的主要内容,如果未能解决你的问题,请参考以下文章

android数据库更新后怎样刷新listview数据

listview 项目背景颜色更改

Android AlertDialog 动态更新里面的ListView数据

android listView,list中有多个值,页面显示两个listView,如何让list中的值在页面中循环显示,谢谢大神…

Android中Listview点击item不变颜色以及设置listselector 无效

Android ListView 选择器颜色