के साथ क्रमबद्ध सूचीदृश्य मेरे पास एक कस्टम सरणी एडाप्टर से एक सूचीदृश्य है। इस सूची में एक TCP कनेक्शन जो डाटासेट में परिवर्तन से प्राप्त जानकारी से पता चलता ...सरणी एडाप्टर
मैं sort (Comparator<? super T> comparator)
साथ सूचीदृश्य सॉर्ट करने के लिए, लेकिन जब डाटासेट बदल गया है, सूचीदृश्य नहीं क्रमबद्ध हो जाता है कर रहा हूँ ...
मैं डेटासेट बदलते समय हर बार sort()
का उपयोग कर सकता हूं, लेकिन मुझे लगता है कि यह सबसे अच्छा विकल्प नहीं है ...
मैं यह कैसे कर सकता हूं? कोई सुझाव?
संपादित
कार्यान्वयन के लिए मैं समाधान प्रस्तुत करने में समस्या हो रही हूँ ...
MyComparatorB.java
public class MyComparatorB implements Comparator<DeviceB> {
private byte orderType;
public MyComparatorB(byte type) {
this.orderType = type;
}
public int compare(DeviceB lhs, DeviceB rhs) {
int res = 0;
if (orderType == SortType.ALPHA) {
res = (lhs.getName()).compareTo(rhs.getName());
}
else if (orderType == SortType.LAST_ACT) {
res = (rhs.getTime().getTime()).compareTo(lhs.getTime().getTime());
}
return res;
}
}
मेरी customArrayAdapter.java के स्निपेट
@Override
public void notifyDataSetChanged() {
super.notifyDataSetChanged();
}
//-----------Order the content of the arrayAdapter------------//
public void sort(byte sortType) {
super.sort(new MyComparatorB(sortType));
notifyDataSetChanged();
}
मेरी MyActivity.java
myDevAdapter.sort(SortType.ALPHA);
में जब मैं डिबगिंग कर रहा हूँ, विधि super.sort(new MyComparatorB(sortType));
कहा जाता है और MyComparatorB के निर्माता भी कहा जाता है। लेकिन विधि compare(DeviceB lhs, DeviceB rhs)
कभी नहीं बुलाया जाता है और मेरी सरणी सूची को हल नहीं किया जाता है ... मैं क्या गलत कर रहा हूं?
आप ArrayList का उपयोग क्यों नहीं करते हैं और सरणी को सॉर्ट करते हैं और सरणी सूची को पुनर्स्थापित करते हैं! – Behnam
मुझे लगता है कि आपको अपनी सरणी को सॉर्ट करना चाहिए और adapter.notifyDataSetChanged() –
@amp: सॉर्ट टाइप यहां क्या है? – YuDroid