java - 在检索期间保存文件并保留顺序
问题描述
在我的笔记应用程序中,只要用户添加笔记,我就会使用以下代码保存它:
public void saveNote(String note, String noteCreationDate) {
// Name file with current date
FileOutputStream outputStream;
try {
outputStream = openFileOutput(noteCreationDate, Context.MODE_PRIVATE);
outputStream.write(note.getBytes());
outputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
}
但是,当我使用加载笔记时
String[] allNotes = fileList();
然后一一迭代添加到List并附加到adapter,RecyclerView中item的顺序就改变了。
如何保留订单。
谢谢
解决方案
更好的解决方案是以更合适的方式存储笔记,例如SharedPreferences
数据库。
作为一种解决方法,您可以对从fileList()
方法获得的文件名进行排序。
String[] allNotes = fileList();
Arrays.sort(allNotes);
// Iterate over the files
您还应该使用具有适当日期格式的文件名,例如ISO 8601 :yyyy-MM-dd'T'HH:mm'Z'
以保证字母顺序。
推荐阅读
- sql - SQLState = 37000, NativeError = 8114 将数据类型 varchar 转换为 bigint 时出错
- excel - 正则表达式删除与 Excel VBA 中包含替代词的子字符串匹配的行
- html - 使用“切换”单击更改图标
- vba - 将多个范围添加到一个参数中
- rust - 创建为 IntoIterator 复制的方法
- postgresql - 在postgresql中用空格选择单个列中的多个列
- javascript - 使用钩子更改链接的 url 和文本
- spring-boot - 使用 github 使用 Docker 将 Spring Boot 应用程序部署到 Heroku
- c# - 每当我使用 Windows 服务打开某个程序时,如何保存在日志中?
- docker - NiFi:此 NiFi 不支持 Kerberos 票证登录