Android 创建片段时Listview未排序

Android 创建片段时Listview未排序,android,sorting,listview,Android,Sorting,Listview,我有一个片段,它使用数据库中的customAdapter显示listview。在工具栏上,我有一个排序选项,可以正常工作。我只想在重新打开应用程序时保留排序顺序 我曾尝试使用共享首选项存储排序顺序名称(如按升序/降序/日期排序),然后将适配器设置为列表视图,但它不起作用 My onCreateView(): NotesHandler.java: public ArrayList<Notes> sortBy(String sortField) { SQLiteDatabase

我有一个片段,它使用数据库中的customAdapter显示listview。在工具栏上,我有一个排序选项,可以正常工作。我只想在重新打开应用程序时保留排序顺序

我曾尝试使用共享首选项存储排序顺序名称(如按升序/降序/日期排序),然后将适配器设置为列表视图,但它不起作用

My onCreateView():

NotesHandler.java:

 public ArrayList<Notes> sortBy(String sortField)
{
    SQLiteDatabase db = this.getReadableDatabase();
    Cursor c = db.rawQuery("select * from "+TABLE_NAME+" order by "+sortField+";",null);
    ArrayList<Notes> n = new ArrayList<>();

    if(c!= null && c.getCount()!=0)
    {
        if(c.moveToFirst())
        {
            do{
                Notes note = new Notes(c.getString(0),c.getString(1),c.getString(2),c.getString(3),c.getString(4),c.getString(5));
                n.add(note);
            }while(c.moveToNext());
        }
    }
    db.close();
    return n;
}
public ArrayList sortBy(字符串sortField)
{
SQLiteDatabase db=this.getReadableDatabase();
游标c=db.rawQuery(“按“+sortField+”;”的顺序从“+TABLE_NAME+”中选择*,null);
ArrayList n=新的ArrayList();
如果(c!=null&&c.getCount()!=0)
{
if(c.moveToFirst())
{
做{
Notes注释=新注释(c.getString(0)、c.getString(1)、c.getString(2)、c.getString(3)、c.getString(4)、c.getString(5));
n、 加(注);
}而(c.moveToNext());
}
}
db.close();
返回n;
}

请提供帮助。

从数据库获取列表后,您应该将过滤器应用于列表。如果出现错误,您必须发送sharedpref saved value(如果it处理程序中有值)。sortBy(sortval)@我已经更新了我的代码。sortVal是sharedPref的保存值。我没有得到任何错误。当我关闭然后重新打开我的列表时,我的列表不会保持排序app@MatPag对不起,我不明白。你能帮我先调试和检查一下吗
 public ArrayList<Notes> sortBy(String sortField)
{
    SQLiteDatabase db = this.getReadableDatabase();
    Cursor c = db.rawQuery("select * from "+TABLE_NAME+" order by "+sortField+";",null);
    ArrayList<Notes> n = new ArrayList<>();

    if(c!= null && c.getCount()!=0)
    {
        if(c.moveToFirst())
        {
            do{
                Notes note = new Notes(c.getString(0),c.getString(1),c.getString(2),c.getString(3),c.getString(4),c.getString(5));
                n.add(note);
            }while(c.moveToNext());
        }
    }
    db.close();
    return n;
}