繁体   English   中英

ViewPager不会更新其视图

[英]ViewPager does not update its view

您好,我的应用程序中有片段的viewpager。 我的问题是单击一些按钮,我想将seriazlizable传递给viewpageradapter(在构造函数的帮助下)。 适配器必须获取可序列化的序列并将其传递给片段并更新其视图。 最后,我想将此适配器的片段更新为viewpager,但是什么也没有发生。 该视图未更新。 请帮忙

public class ViewPagerAdapter extends FragmentPagerAdapter {


      private Bank myobject;

    public ViewPagerAdapter(FragmentManager fm,Bank object) {
        super(fm);
        myobject = object;
        // TODO Auto-generated constructor stub
    }

    @Override
    public Fragment getItem(int item) {
        // TODO Auto-generated method stub
        switch (item) {
        case 0:
            CurrencyFragment myFragment = new CurrencyFragment();
            Bundle args = new Bundle();
            args.putSerializable("message", myobject);
            String code = myobject.getCode();
            Log.i("TAG","kodiiiiiiiiiiiiiiii"+ code);
            myFragment.setArguments(args);


            return myFragment;

        default:
            // The other sections of the app are dummy placeholders.
            Fragment fragment = new CurrencyFragment();
            return fragment;
    }

    }

    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return 2;
    }

并且在主要活动中

mDrawerList.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1, int position,
                    long arg3) {
                // TODO Auto-generated method stub
                getBanks(position);


            }
        });



public void getBanks(final int pos) {
        new AsyncTask<Integer, Void, List<Bank>>() {



            @Override
            protected List<Bank> doInBackground(Integer... params) {

                return mGeoCurrency.getBanks("en").getData();
            }

            @Override
            protected void onPostExecute(List<Bank> banksList) {
                super.onPostExecute(banksList);
                try {
                    mListOfBanks = banksList;
                    mBankAdapter = new BankAdapter(getApplicationContext(),
                            R.layout.drawer_layout, mListOfBanks);
                    mDrawerList.setAdapter(mBankAdapter);
                    Bank nBank = mListOfBanks.get(pos);

                    Log.i("tag","kodiiiiiiiiiiiiii"+nBank.getCode());
                    ViewPagerAdapter pagerAdapter =  new ViewPagerAdapter(getSupportFragmentManager(),nBank);
                    mViewpager.setAdapter(pagerAdapter);
                } catch (Exception e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

            }
        }.execute();
    }

尝试在寻呼机适配器上调用notifyDataSetChangedref )以要求其刷新其视图。

适配器将重新创建视图,在创建Fragments时将再次调用适配器的getItem()方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM