之前做期中作业的时候,有做到过对应用笔记按照时间顺序排序的功能,也就是得按照时间戳顺序进行排列
排列前:
大致步骤如下:
1.首先需要读取数据,然后存放到List里面;
2.接下来,取出数据里的时间戳,把String转换成为Date;
3.最后把List中元素按照Date进行排列。
具体代码如下:
//把List按照时间轴顺序排序
@Override
public int getItemCount() {
return mNoteList.size();
}
public static class NoteViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener,View.OnLongClickListener{
private TextView mTitleTextView;
private TextView mTimeTextView;
private Note mNote;
private OnLongItemClickListener mOnLongItemClickListener;
public NoteViewHolder(View itemView) {
super(itemView);
mTitleTextView = itemView.findViewById(R.id.title_text_view);
mTimeTextView = itemView.findViewById(R.id.time_text_view);
itemView.setOnClickListener(this);
itemView.setOnLongClickListener(this);
}
public void bind(Note note,OnLongItemClickListener onLongItemClickListener){
mNote = note;
mOnLongItemClickListener = onLongItemClickListener;
if(mTitleTextView != null && mTimeTextView != null){
mTitleTextView.setText(note.getTitle());
Date date = new Date(note.getModifyTime());
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateString = formatter.format(date);
mTimeTextView.setText(dateString);
}
itemView.setBackgroundColor(mContext.getResources().getColor(mNote.getColor()));
}
排序也还有比较简单的方式,可以通过冒泡排序对时间戳进行降序排列,如:
//将List按照时间降序进行排列
@SuppressLint("SimpleDateFormat")
private List<TestEntity> invertOrderList(List<TestEntity> L){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date d1;
Date d2;
TestEntity temp_r = new TestEntity();
//这是一个冒泡排序,将大的放在数组前面
for(int i=0; i<L.size()-1; i++){
for(int j=i+1; j<L.size();j++){
ParsePosition pos1 = new ParsePosition(0);
ParsePosition pos2 = new ParsePosition(0);
d1 = sdf.parse(L.get(i).getDate(), pos1);
d2 = sdf.parse(L.get(j).getDate(), pos2);
if(d1.before(d2)){//如果日期靠前,则换顺序
temp_r = L.get(i);
L.set(i, L.get(j));
L.set(j, temp_r);
}
}
}
return L;
}
其实排序方式还有很多种,之前也还有看到过通过反编译文件管理器apk的方式来了解排序原理的,进而发现重写Comparator的实现类FileComparator来实现按照文章的创建时间顺序排列的,也可以通过其中的Compare类来实现。
原作者:谢月荫
原文链接:https://blog.csdn.net/xyy_d_semine/article/details/80716285