0

いくつかのフラグメントを保持するFragmentPagerAdapterがあります。これらのフラグメントの内容は変更されましたが、更新関数でフラグメントを更新できませんでした。私はすでにこれらの提案を運がなくて試しました:

ViewPagerPagerAdapterがビューを更新しない

Androidはフラグメントにビューを再構築させます

これが私のコードの一部です:

private void updateNavigation() {
//update code to redraw the fragment
//not workind
//mNavigationViewPager.getAdapter().notifyDataSetChanged();
        FragmentManager fragmentManager = getFragmentManager();
        FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
        Bundle args = new Bundle();
        AFragment newFragment = new AFragment();
        args.putString("test");
        newFragment.setArguments(args);

        FragmentTransaction transaction = getFragmentManager().beginTransaction();
        transaction.replace(R.id.navigation_pager, newFragment);
        transaction.addToBackStack(null);
        transaction.commit();

これはフラグメントです:

public static class AFragment extends Fragment {
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState) {
            // Inflate the layout for this fragment, draw layout dynamically
            MyLinearLayout fl = new MyLinearLayout(getActivity());
                    Button btn = new Button(getActivity());
                    btn.setText(String.valueOf(cnt++));   
                    btn.setGravity(Gravity.LEFT);
                    btn.setPadding(28, 7, 0, 0);
                    fl.addView(btn, new MyLinearLayout.LayoutParams(7, 5, 70, 50));
                    fl.setPadding(5, 5, 5, 5);
            }
            return fl;
        }
    }

作成時のアクティビティ:(..)

 mNavigationViewPager = new ViewPager(this);
            mNavigationViewPager.setId(R.id.navigation_pager);
            mTabsAdapter = new TabsAdapter(this, mNavigationViewPager);
    mTabsAdapter.addTab(actionBar.newTab().setText("text1"),
                    fragmentNr1, null);
 actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

電話すると

actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);

オプションメニューの相互作用とその後の

actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

別のオプションメニューでは、フラグメントが正しく更新されます。

4

1 に答える 1

0

動作しています。タイプミスをしました。

于 2012-10-03T12:35:54.227 に答える