我有一个导航抽屉,显示一个列表和一个显示内容的viewpager。当单击导航抽屉列表中的特定项目时,将为所有页面生成URL,并且该URL应导致视图寻呼机内容的更改。导航抽屉和viewpager在同一个Activity中。视图分页器中的片段具有从服务器检索内容的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) {
}
});
}
viewpager中有三个页面。适配器如下:
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页面中的内容?
答案 0 :(得分:1)
您无法直接引用每个页面片段。所以你可以这样做:
如果您有相同的网址或这些网址是随机的,哪个网址在哪里无关紧要,请生成它们并发送广播消息,您将把URL放在广播意图中。您的每个片段都在为该消息类型注册一个广播接收器,当您收到该意图后,请获取该URL并在那里获得它。
如果网址依赖于每个片段,请从片段生成网址。只需要知道用户何时按下导航抽屉中的项目。再说一次:当用户点击某个项目时,广播一条消息(可能包括该选项),每个片段都会收到该消息并知道生成该URL。
有道理吗?