2

在我的应用程序开始时,我显示一个对话框。在这个对话框中,我有 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);

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

4

1 回答 1

6

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

创建一个新方法,在其中对数据库进行 fetch 调用并在其中填充微调器。

之后,在handleMessage()你的方法中Handler(我关闭了我的Dialog),调用这个方法。因此,微调器在写入数据库后被填充,而不是此过程中(然后显示数据库中的“旧”数据)。

于 2011-11-21T14:53:02.153 回答