【发布时间】:2018-05-22 15:50:42
【问题描述】:
我写了一个扩展BaseExpandableListAdapter 的类。当单击一个组时,我希望它展开,然后视图中的自定义指示器将为 180 旋转设置动画。它有效。
我的问题是,在同一个 clicklistener 上,我想使用 setText() 方法更新 TextView,但是当我运行它时,它不会更新视图。
我测试了问题是否出在对TextView 的引用中:更改可见性、旋转它、动画它,它们都可以工作。它只是 setText() 不起作用。
下面是适配器类中的相关代码:(其实有两个TextViews我要更新)
@Override
public void onGroupExpand(int groupPosition) {
GroupViewHolder holder = mViewHolderSparseArray.get(groupPosition);
Lesson lesson = (Lesson) getChild(groupPosition, 0);
holder.indicatorView.animate().rotation(180);
holder.teacherView.setText(lesson.getTeacher());
holder.classroomView.setText(lesson.getClassroom());
}
@Override
public void onGroupCollapse(int groupPosition) {
GroupViewHolder holder = mViewHolderSparseArray.get(groupPosition);
holder.indicatorView.animate().rotation(0);
holder.teacherView.setText("...");
holder.classroomView.setText("");
}
我也尝试将此代码放在 getGroupView() 中(将 OnClickListener 分配给视图),但我得到了相同的结果。
其他一些相关方法:
@Override
public long getGroupId(int groupPosition) {
return groupPosition;
}
@Override
public long getChildId(int groupPosition, int childPosition) {
return childPosition;
}
@Override
public boolean hasStableIds() {
return true;
}
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return true;
}
任何想法为什么我的TextView 不更新其文本?
【问题讨论】:
-
致电
notifyDataSetChanged ();和stackoverflow.com/a/23281494/3395198 -
@IntelliJAmiya 我看不出 notifyDataSetChanged() 会有什么帮助(试过了,没用),但你链接的答案有帮助。我会发布一个答案。
标签: android textview expandablelistview expandablelistadapter