数据库更改后刷新操作栏微调器

时间:2013-09-10 09:32:05

标签: java android database android-actionbar android-spinner

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

1 个答案:

答案 0 :(得分:0)

你在哪里调用notifyDataSetChanged()?

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

我认为你应该致电

              listUniqueCat = mDbHelper.getUniqueCategories();   
              notifyDataSetChanged()

在你的第一个活动的onResume