1

我在一个活动中有一个操作栏微调器,它使用数据库中的数据填充。我有第二个修改数据库的活动(包括第一个活动中使用的操作栏微调器的数据)。数据库更改后如何刷新微调器?我试过了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);
4

1 回答 1

0

你在哪里调用 notifyDataSetChanged()?

如果您在第二个活动中进行数据库更改,并且当您通过按返回按钮“恢复”进入第一个活动时,将调用第一个活动的。

我想你应该打电话

              listUniqueCat = mDbHelper.getUniqueCategories();   
              notifyDataSetChanged()

在您的第一个活动的 onResume 中

于 2013-09-10T10:10:33.420 回答