来自数据库的Android填充Spinner接受旧条目

时间:2011-11-19 21:35:42

标签: android simplecursoradapter android-spinner

在我的应用程序开始时,我会显示一个对话框。 在这个对话框中,我有2个微调器。如果我更改第一个微调器的条目,则应用程序会加载JSON文件并将其解析为数据库。然后,微调器从保存JSON文件的数据库中填充SimpleCursorAdapter。问题是,当我更改第一个微调器时,它总是加载上次更改微调器时保存的数据库。

这是来自onItemSelected方法的代码:

final Handler handler = new Handler() {
    public void handleMessage(Message msg) {
        dialogs.dismiss();
    }
};
Thread checkUpdate = new Thread() {
    public void run() {
        klassenListeAktualisieren((new Long(txtBerufID)).toString());
        handler.sendEmptyMessage(0);
    }
};
checkUpdate.start();
dbHelperKlasse = new KlassenlisteDbAdapter(myContext);
dbHelperKlasse.open();

Cursor cursor_Names = dbHelperKlasse.fetchAllOfThem();
startManagingCursor(cursor_Names);

String[] columns = new String[] { dbHelperKlasse.KEY_TITLE };
int[] to = new int[] { android.R.id.text1 };

SimpleCursorAdapter mAdapter = new SimpleCursorAdapter(myContext, android.R.layout.simple_spinner_item,cursor_Names, columns, to);
mAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
klassenSpinner.setAdapter(mAdapter);

如果您需要了解其他任何内容(代码等),请告诉我。

1 个答案:

答案 0 :(得分:6)

对于每个面临同样问题的人来说,这就是解决方案:

创建一个新方法,在其中放入对数据库的提取调用以及填充微调器的位置。

之后,在您handleMessage()的{​​{1}}方法中(我关闭了我的Handler),请调用此方法。因此,在写入数据库之后,填充,而在此过程中,然后显示数据库中的“旧”数据。