我在一个活动中有一个操作栏微调器,它使用数据库中的数据填充。我有第二个修改数据库的活动(包括第一个活动中使用的操作栏微调器的数据)。数据库更改后如何刷新微调器?我试过notifyDataSetChanged();
,但没有用。此外,当我在执行更改后重新启动应用程序时,它们会反映在微调器中,因此我可以看到修改工作,但仅当我再次运行应用程序时,而不是在进行更改时
// this is inside the onCreate()
// return a List<String> used to populate action bar spinner
listUniqueCat = mDbHelper.getUniqueCategories();
// create an array adapter to popluate dropdown list
adapter = new ArrayAdapter<String>(
getBaseContext(),
android.R.layout.simple_spinner_dropdown_item, listUniqueCat);
// enable dropdown list naaavigation in action bar
getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
// defining navigation listiner
ActionBar.OnNavigationListener navigationListener = new OnNavigationListener() {
@Override
public boolean onNavigationItemSelected(int itemPosition,
long itemId) {
selectedPos = getActionBar().getSelectedNavigationIndex();
selectedSpinnerItem = listUniqueCat.get(selectedPos);
Toast.makeText(getBaseContext(),
"you selected " + selectedSpinnerItem,
Toast.LENGTH_LONG).show();
return false;
}
};
// setting dropdown items and item navigation listener for action bar
getActionBar().setListNavigationCallbacks(adapter, navigationListener);
答案 0 :(得分:0)
你在哪里调用notifyDataSetChanged()?
如果您在第二个活动中进行数据库更改,当您通过按“返回”按钮返回第一个活动时,将调用第一个活动。
我认为你应该致电
listUniqueCat = mDbHelper.getUniqueCategories();
notifyDataSetChanged()
在你的第一个活动的onResume