我有一个显示列表的导航抽屉和一个显示内容的视页。当单击导航抽屉上列表中的特定项目时,将为所有页面生成一个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页面中的内容?
不能直接引用每个页面片段。所以你可以做:
>
如果您有相同的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()尝试了它,但不起作用。有人能帮忙吗?下面是我的全部代码: 主要活动