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】:你必须在ListView
Adapter
的getView()
方法中设置你的样式。
据我现在所见,您只是在 ListView
内搜索 TextView
并设置其文本颜色。
您应该将选定的状态存储在您的 Adapter
中,并相应地设置您的 TextView
的颜色。
这里是链接:http://www.vogella.com/tutorials/AndroidListView/article.html
【讨论】:
以上是关于Android ListView 更新颜色的主要内容,如果未能解决你的问题,请参考以下文章
Android AlertDialog 动态更新里面的ListView数据
android listView,list中有多个值,页面显示两个listView,如何让list中的值在页面中循环显示,谢谢大神…