Android 更新SQLite时更新微调器

Android 更新SQLite时更新微调器,android,spinner,android-arrayadapter,Android,Spinner,Android Arrayadapter,我有一个应用程序,用户可以在EditText字段中输入艺术家的姓名,并将其添加到sqlite表中。这很好,但我也有一个微调器在同一个活动/布局,我想更新这些新的变化。下面是我如何设置它的: 我有一个sqlite类,它将插入查询表并返回“ArtistList”数组的新名称和方法 在我的活动中,我能够在第一次创建时使用数组适配器将ArtistList放入微调器 用户在EditText中输入新名称,更新sqlite表,成功 我试图通过运行sqlite方法ArtistList来重新加载ArrayList

我有一个应用程序,用户可以在EditText字段中输入艺术家的姓名,并将其添加到sqlite表中。这很好,但我也有一个微调器在同一个活动/布局,我想更新这些新的变化。下面是我如何设置它的:

我有一个sqlite类,它将插入查询表并返回“ArtistList”数组的新名称和方法

在我的活动中,我能够在第一次创建时使用数组适配器将ArtistList放入微调器

用户在EditText中输入新名称,更新sqlite表,成功

我试图通过运行sqlite方法ArtistList来重新加载ArrayList和ArrayAdapter,但是微调器仍然没有更新,它在更新之前仍然具有相同的旧列表。我知道我可以做一个artistList.add(),但那会使列表混乱。我希望这个列表按字母顺序排列,这就是为什么我要从sqlite类中检索ArrayList,sqlite正在为我组织数据

我尝试使用setNotifyOnChange,我尝试了一个新的(正在清除的)arraylist和适配器…没有任何效果

这是在创建时运行的:

sqlclass helper = new sqlclass(this);
        SQLiteDatabase db = helper.getWritableDatabase();
        artistList = helper.getArtistList(db, tableName);
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, artistList);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        adapter.setNotifyOnChange(true);
sqlclass-helper=新的sqlclass(这个);
SQLiteDatabase db=helper.getWritableDatabase();
artistList=helper.getArtistList(db,tableName);
adapter=new ArrayAdapter(这是android.R.layout.simple\u微调器\u项,artistList);
setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
adapter.setNotifyOnChange(true);
谢谢你的帮助

无需担心…
我最后制作了一个新的适配器…并添加了spinner.setAdapter(适配器)。不确定这是否应该存在,因为微调器在更新之前一直在显示“查找”,但它现在正在工作…

我为这一点含糊不清表示歉意,但请考虑使用游标适配器。。。我认为它将允许您重新查询和更新数据集。

您是说在我的sqlite中使用游标适配器吗?我在谷歌上研究这个,因为我不明白。这个游标适配器应该帮助我创建ArrayList吗?因为我可以很好地获得更新的arraylist,只是微调器没有更新。我很抱歉,我很快就输入了答案,没有太多的支持。。。如果正在使用阵列适配器,是否保留对作为数据集的列表的引用并将其替换?如果是这样,请关闭setNotifyOnChange(true)(设置为false),对新数据集使用clear,然后使用addAll(),然后调用notifyDataSetChanged(),使用swing下的DataAdapters和它们的模型设置来执行类似的操作。我再次为我最初含糊不清的回答道歉。