我有一個微調視圖。該活動通過彈出式窗口添加或刪除父項在Spinner中顯示的值來啓動另一個活動。 因此,在onActivityResult()中,我通過調用我的fillSpinner()方法來刷新Spinner的內容,以便它反映任何其他或已刪除的值。 該方法的參數是預先選擇的值:刷新微調器
private void fillSpinner(String value){
Cursor c = mDbHelper.getAllCategories();
startManagingCursor(c);
c.moveToFirst();
String[] from = new String[]{DBAdapter.KEY_CATEGORY};
SimpleCursorAdapter scCats = new SimpleCursorAdapter(
this, android.R.layout.simple_spinner_item,c,from,
new int[]{android.R.id.text1});
scCats.setDropDownViewResource(
android.R.layout.simple_spinner_dropdown_item);
category.setAdapter(scCats);
if (value != null && value != "") {
category.setSelection((int)mDbHelper.categoryIndex(value));
}
}
當我打開微調,它包含正確的列表(即,它被刷新),並且選擇正確的值。但是,微調控制器本身(處於關閉狀態)不顯示選定的值,而是顯示列表中的第一個值。
當我調試調試器中的代碼時,在我調用setSelection()(並且始終使用相同的正確ID)調用之前和之後,Spinner值是正確的。但是,由於我無法退出該事件,因此在短時間後恢復執行時,Spinner中的值會發生變化。
換句話說,當我從彈出式活動返回時,微調控件的顯示字符串發生了變化,與選定的項目不同。
任何想法表示讚賞。
謝謝!爲我工作。 – Yellos 2012-08-28 13:55:13