我有一个viewpager,有几个片段。 可以在FormActivity中实例化pageradapter。

//initialise pager for swipe screens
    ViewPager pager = (ViewPager) findViewById(R.id.viewPager);
    MyPagerAdapter adapter = new MyPagerAdapter(getSupportFragmentManager());
    pager.setAdapter(adapter);

但是,然后我需要访问MyPagerAdapter.getRegisteredFragment(),但是我不知道适配器的对象名称是什么,或者我怎么知道如何从getSupportManager()中检索适配器的名称? 这是viewpager代码;

public class MyPagerAdapter extends FragmentStatePagerAdapter {
        SparseArray<Fragment> registeredFragments = new SparseArray<Fragment>();

        public MyPagerAdapter(FragmentManager fm) {

            super(fm);
        }

        @Override
        public Fragment getItem(int pos) {
            switch(pos) {

                case 0: return FirstFragment.newInstance("@string/form_instruct");
                case 1: return SecondFragment.newInstance("SecondFragment, Instance 1");
                case 2: return ThirdFragment.newInstance("ThirdFragment, Instance 1");
                case 3: return FourthFragment.newInstance("FourthFragment, Instance 1");
                //case 4: return FifthFragment.newInstance("ThirdFragment, Instance 3");
                default: return FirstFragment.newInstance("FirstFragment, Default");
            }
        }

        @Override
        public int getCount() {
            return 4;
        }

        @Override
        public Object instantiateItem(ViewGroup container, int position) {
            Fragment fragment = (Fragment) super.instantiateItem(container, position);
            registeredFragments.put(position, fragment);
            return fragment;
        }

        @Override
        public void destroyItem(ViewGroup container, int position, Object object) {
            registeredFragments.remove(position);
            super.destroyItem(container, position, object);
        }

        public Fragment getRegisteredFragment(int position) {
            return registeredFragments.get(position);
        }
    }

以及我调用adapter.getRegisteredFragment()的方法

public void DrawText() {
        // Fetching user details from sqlite
        HashMap<String, String> user = db.getUserDetails();

        if (user.size() != 0) {

            // Displaying the user details on the screen
            Fragment n = adapter.getRegisteredFragment(0);
            n.surnameText.setText(surname);

        }else{
            Log.e(TAG, "table not filled");
        }
    }

非常感谢您的帮助,谢谢。

===============>>#1 票数:1 已采纳

像这样为视图分页器创建一个对象

public MyPagerAdapter adapter;

然后实例化对象

adapter = new MyPagerAdapter(getSupportFragmentManager())
pager.setAdapter(adapter); 

然后调用方法执行此操作

Fragment fragment = adapter.getRegisteredFragment(pager.getCurrentItem); 

  ask by DarkMalice translate from so

未解决问题?本站智能推荐:

3回复

如何在ViewPager Android中解决空对象引用

我正在使用查看寻呼机滑动图像。 我可以在Log中获取url,但是当我尝试在ImageView中进行设置时,却收到了错误消息。 我在代码中检查了很多次,但无法解决错误。 这是viewpager xml: 和image_viewpager.xml 请帮我解决问题。
1回复

Android ViewPager为findviewbyid查找片段

如果您想知道,不,我没有错过与我的问题类似的数百个线程。 但是,没有一个对我有用。 我想在FragmentActivity中使用findviewbyid。 我基本上是使用示例android实现和在线提出的解决方案来查找片段。 main.xml中: Main_control.x
1回复

无法在Android Studio中使用ViewPager查看选项卡布局中的选项卡名称

我设计了一个页面,该页面由带有tablayout和viewpager的工具栏组成。 此页面使用Theme.AppCompat.Light.NoActionBar样式作为应用程序amin主题。 一切工作正常,我无法查看页面幻灯片页面,但无法查看TabLayout中的标签名称。 请任何人帮助我
1回复

查找ViewPager是否已在Android中加载

嗨,我在玩ViewPager。 在我的项目中,类MyPagerAdapter扩展了PagerAdapter。 MyPagerAdapter的InstantiateItem方法如下所示。 viewpager_layout.xml包含一个ImageView。 ViewPager
1回复

在android示例中,为什么ScreenSlidePageFragment类使用工厂方法来创建对象

我不知道为什么他们使用工厂方法来创建ScreenSlidePageFragment的实例。 在构造函数中传递pageNumber并将其分配给那里的mPageNumber有什么问题,当然还要摆脱这个工厂方法和ARG_PAGE ?! 这是代码: }
1回复

膨胀视图和对象Android

我有两个视图的PagerAdapter。 现在,我通过将android:onClick="populateList()"附加到按钮来从xml调用populateList() 。 如果尝试从Main活动中调用populateList() ,它将在ListView上创建一个NullPointer
1回复

Android ViewPager-不显示活动的名称/标签

我正在使用ViewPager显示带有片段的选项卡。 问题是我似乎无法从选项卡上方隐藏活动的名称/标签。 我还想知道是否有人知道如何使用制表符和片段而不使用support library因为我的最低SDK为14。
2回复

单击Android中的通知

我有一个正在运行服务的应用程序。 服务会根据时间发出通知(例如,在11小时发送通知,在11:30小时发送另一个通知) 当用户单击通知时,我必须在应用程序中显示一个弹出窗口(Android中为Dialog类)。 我的解决方案是:当用户单击通知然后显示对话框时,我将启动应用程序的Mai
3回复

Android中的多个片段

在项目中 片段活动->有2个按钮Common level 3片段->具有“编辑文本”(每个都有) 查看用于显示“片段活动”中的3个片段的分页器 目标 单击“活动”按钮时,我想在“片段活动”中获取所有3个片段“编辑文本”值 我通过传递编辑文
1回复

Xamarin Android中的BindableViewPager

我正在使用Xamarin Android Application。我想使用Cheesebaron的BindableViewPager。但是当我使用BindableViewPager时我得到了这个异常: android.view.InflateException:二进制XML文件行#1:错误膨胀类