我有一個按鈕,應該使用自定義適配器排序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