У меня есть список recyclerview, который является контрольным списком. Я хочу, чтобы он сортировался по дате и если флажок установлен или нет. Поэтому, если пользователь находится на главном экране, он/она должен увидеть отсортированный список, основанный на дате, и если он/она нажмет флажок, я хочу, чтобы этот элемент переместился в нижнюю часть списка.Динамическая сортировка списка Recyclerview
Я написал метод CompareTo в классе модели:
public int compareTo(BucketItem o) {
if (this.isChecked && !o.isChecked){
return -1;
}else if(!this.isChecked && o.isChecked){
return 1;
}else if (this.isChecked && o.isChecked){
return 0;
}else{
return getDate().compareTo(o.getDate());
}
}
Компоновка ищет один пункт выглядит следующим образом:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="13dp"
android:paddingBottom="13dp"
android:weightSum="1">
<!--<TextView-->
<!--android:id="@+id/contact_name"-->
<!--android:layout_width="0dp"-->
<!--android:layout_height="wrap_content"-->
<!--android:layout_weight="1"-->
<!--/>-->
<RelativeLayout
android:layout_height="52dp"
android:layout_width="wrap_content"
android:id="@+id/RelativeLayout1"
android:orientation="vertical"
android:layout_marginBottom="16dp"
android:layout_weight="0.95">
<CheckBox
android:id="@+id/checkBox1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_centerVertical="true"
android:clickable="true"
android:onClick="itemClicked"
/>
<TextView
android:id="@+id/bucket_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/checkBox1"
android:layout_centerVertical="true"
android:text="TextView"
android:clickable="true"
android:onClick="editItem"/>
<TextView
android:text="TextView"
android:id="@+id/bucket_des"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_below="@+id/bucket_name"
android:layout_toEndOf="@+id/checkBox1" />
</RelativeLayout>
</LinearLayout>
Мой главный вопрос, где я поставил Collections.sort (список), чтобы он вызывался каждый раз, когда новый элемент добавляется в список или проверяется флажок?
При щелчке по флажку перемещается элемент, на самом деле он не перемещает отмеченные элементы на дно. сортировка списка в основном не работает должным образом. Какие-либо предложения? – user4151797
Это не то, что вы упомянули в своем вопросе –