我有一个应用程序,用户可以在EditText字段中输入艺术家的名字,它将被添加到sqlite表中。这很好用,但我在同一活动/布局上也有一个微调器,我想用这些新的更改来更新。以下是我设置的方法:
我有一个sqlite类,它将插入将查询表并返回'ArtistList'数组的新名称和方法。
在我的活动中,我可以在首次创建时使用数组适配器将ArtistList放入微调器。
用户在EditText中输入新名称,更新sqlite表,成功...
我尝试通过运行sqlite方法ArtistList来重新加载ArrayList和ArrayAdapter,但是微调器仍然没有更新,它在更新之前仍然具有相同的旧列表。我知道我可以做一个artistList.add(),但这会使列表乱序。我希望按字母顺序排列这个列表,这就是我从sqlite类中检索ArrayList的原因,sqlite正在为我组织数据。
我尝试使用setNotifyOnChange,我尝试了一个新的(和清除)arraylist和适配器......没有任何工作。
这是onCreate:
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);
感谢您的帮助!
没关系... 我最终制作了一个新的适配器......并添加了spinner.setAdapter(适配器)。不确定是否应该在那里,因为微调器在更新前显示find,但它现在正在工作......
答案 0 :(得分:0)
我为这个模糊而道歉但是考虑使用CursorAdapter ...我认为它将允许您重新查询和更新数据集。