1

データベースからのデータを使用して入力される 1 つのアクティビティに、アクション バー スピナーがあります。データベースを変更する 2 番目のアクティビティがあります (最初のアクティビティで使用されるアクション バー スピナーのデータを含む)。データベースが変更されたらスピナーを更新するにはどうすればよいですか? 試してみましたが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() を呼び出していますか?

2番目のアクティビティでデータベースの変更を行っている場合、最初のアクティビティの「再開」ボタンを押して最初のアクティビティに移動すると、最初のアクティビティが呼び出されます。

電話したほうがいいと思います

              listUniqueCat = mDbHelper.getUniqueCategories();   
              notifyDataSetChanged()

最初のアクティビティの onResume で

于 2013-09-10T10:10:33.420 に答える