当前位置: 首页 > 知识库问答 >
问题:

如何更改ViewPager片段上的内容?

孟正志
2023-03-14

我有一个显示列表的导航抽屉和一个显示内容的视页。当单击导航抽屉上列表中的特定项目时,将为所有页面生成一个URL,该URL将导致视图分页程序内容的更改。导航抽屉和查看页处于相同的活动中。view pager中的片段具有从服务器检索内容的URL。我怎样才能找到它?

下面是一些代码:

public void View_pager() {

    viewpager = (ViewPager) findViewById(R.id.pager);
    actionbar = getActionBar();

    adapter = new TabsPagerAdapter(getSupportFragmentManager());
    viewpager.setAdapter(adapter);

    actionbar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

    for (String tabs_name : tabs) {
        actionbar.addTab(actionbar.newTab().setText(tabs_name)
                .setTabListener(this));
    }

    viewpager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {

        @Override
        public void onPageSelected(int position) {
            actionbar.setSelectedNavigationItem(position);
        }

        @Override
        public void onPageScrolled(int arg0, float arg1, int arg2) {
        }

        @Override
        public void onPageScrollStateChanged(int arg0) {
        }
    });
}

查看页有三页。适配器如下:

public class TabsPagerAdapter extends FragmentPagerAdapter {

public TabsPagerAdapter(
        android.support.v4.app.FragmentManager fragmentManager) {
    super(fragmentManager);

}

@Override
public Fragment getItem(int index) {

    switch (index) {
    case 0:
        return new Page1();
    case 1:
        return new Page2();
    case 2:
        return new Page3();
    }
    return null;
}

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

}

这些页面都有一个URL字段,用于从包含数据的服务器中提取json。所以简而言之,问题是当导航抽屉中的列表项被单击时,如何更改viewpager页面中的内容?

共有1个答案

龚玄天
2023-03-14

不能直接引用每个页面片段。所以你可以做:

>

  • 如果您有相同的url,或者这些url是随机的,并且哪一个放在哪里并不重要,生成它们并发送一条广播消息,将url放在广播意图中。您的每个片段都为该消息类型注册了一个广播接收器,当您接收到意图时,获得URL并在那里您就有了它。

    如果url依赖于每个片段,则从片段生成url。只是你需要知道用户什么时候从导航抽屉中按下一个项目。再次声明:当用户点击一个项目时,广播一条消息(可能包括选项),每个片段都将接收它,并将知道生成URL。

  •  类似资料:
    • 我痛苦了3天。我正在使用兼容性库中的视图分页程序。我已经成功地让它显示了几个视图。我的问题是,当我交换视图时,不会在它的回收器视图中按片段更新数据。但当我关闭应用程序时,打开碎片会按回收器视图显示更新内容。我使用了所有方法,如setnotifydatachanged()和许多其他方法,但viewpager中的片段不更新内容。感谢所有的帮助,这是我的主要活动

    • 下面是: 这是我要用于向中添加项的方法

    • StaticPagerAdapter dummyfragment1 layoutfragment1

    • 当我向上选择选项卡时,它起作用,但当我返回时,内容变成白色。LogCat显示: 致命异常:main java.lang.IllegalArgumentException:在Android.support.v4.app.FragmentManagerImpl.MoveToState(FragmentManager.java:903)在Android.support.v4.app.FragmentMa

    • 在我的应用程序中,fragment活动包含两个片段,片段A和片段B,fragment B是一个包含3个片段的视图分页器。 在我的活动中,为了防止在配置更改时重新创建片段: 片段B的代码: 显然,在每次轮换时都要这样做: 这会导致整个寻呼机被重新创建,对吗?结果是 将在每次循环时被调用,碎片将从头创建并失去状态: 在中,但其结果是,在循环时,页面中的片段被移除。 有什么想法如何正确地保留在寻呼机内的

    • 我正在考虑一个简单的例子,包括以下部分: Main活动:有编辑文本、按钮、viewPager 碎片A:什么都没有 碎片B:有文本视图 所以,在屏幕上,你可以滑动查看每个片段。我希望我的例子有这样一个功能:如果一个人在editText中写了一个文本,然后点击按钮,它就会出现在片段B中。 A使用notifyDatsetChanged()尝试了它,但不起作用。有人能帮忙吗?下面是我的全部代码: 主要活动