我有一个按钮,应该使用自定义适配器排序ListView。该按钮侦听如下:ListView不重绘从OnClickListener
collectionSort.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
sortOrder = -sortOrder;
Log.d("DBGINF", "Sort Order: " + sortOrder);
m.sortByTitles(sortOrder);
m.notifyDataSetChanged();
});
的排序顺序的变化,因为它应该和数据在阵列中进行排序,实际的观点从未被notifyDataSetChanged更新虽然。下面是sortByTitles()方法:
public void sortByTitles(int dir) {
if (dir > 0) {
sort(new StringComparator());
} else if (dir < 0) {
sort(new ReverseStringComparator());
}
Log.d("Data Set: ", this.getItem(0) + "");
}
的notifyDataSetChanged()
不会永远更新OnClickListener
里面的观点,但始终正常工作外的OnClickListeners之一。我究竟做错了什么?
编辑
这里是在适配器类的构造函数:
public MainMenuArrayAdapter(Context context, CollectionObject[] objects) {
super(context, R.layout.mainmenurow, objects);
myContext = context;
}
这里是它如何被在OnCreate(初始化)活动的方法:
CollectionObject[] sample = new CollectionObject[] { c1, c2, c3, c4, c5, c6 };
final MainMenuArrayAdapter m = new MainMenuArrayAdapter(this, sample);
c1-c6只是一些临时的CollectionObjects用于测试。
什么是'myCollections'?将需要查看适配器的更多代码。 – st0le
我需要看看你如何初始化你的适配器? – st0le
我使用自定义适配器的构造函数编辑了我的问题。 myCollections是一个数组,它包含所有的CollectionObjects – jpalm