2011-05-14 37 views
1

我有一个应用程序,用户可以在EditText字段中输入艺术家的名字并将其添加到sqlite表中。这很好,但我也有一个微调,在我想更新这些新的更改相同的活动/布局。以下是我如何设置: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(适配器)。不知道是否应该在那里,因为微调显示查找,直到更新,但它现在的工作...

回答

0

我很抱歉这是模糊的,但看看使用CursorAdapter ...我认为这将允许你重新查询和更新数据集。

+0

你是说在我的sqlite中使用CursorAdapter吗?我正在谷歌研究这个,因为我不理解这一点。该CursorAdapter是否应该帮助我创建ArrayList?因为我能够获得更新的数组列表就好了,它只是微调不更新。 –

+0

我很抱歉,我很快就回答了这个问题,并且没有太多支持......如果您使用的是阵列适配器,您是否保留对您的数据集的列表的引用并将其替换?如果是这样,关闭setNotifyOnChange(true)(设置为false),使用clear,然后addAll()与新的数据集,然后调用notifyDataSetChanged() 用于必须做这样的事情与DataAdapters在摆动与模型设置他们有。 我再次对最初的模糊回应表示歉意。 –