我想获取片段页面中设置的隐藏值以便对其进行处理。我在片段页面中设置隐藏值,并希望在活动页面中获取隐藏值,并在oreder中使用Viewpager onPageSelected值来更新具有详细信息的片段。这可能吗?
我的片段页面
public class CountryFragment extends Fragment {
public static final String STARTUP_ID = "startupID";
private String st_id;
public CountryFragment() {
// emtpy
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
String st_id = getArguments().getString(STARTUP_ID);
this.st_id = st_id;
View v = inflater.inflate(R.layout.country_fragment, container, false);
TextView hiddenstatupid= (TextView) v.findViewById(R.id.hiddenstatuptextview);
hiddenstatupid.setText(st_id);
return v;
}
}
活动页面
public class IndividualPage extends ActionBarActivity{
ViewPager pager;
@Override
public void onCreate (Bundle savedInstanceState)
{
pager = (ViewPager)findViewById(R.id.viewpager);
pager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
//here is where i need to get the hidden id of startup which is in the countryfragment
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
我的CountryPageAdapter
public class CountryPageAdapter extends FragmentPagerAdapter {
public CountryPageAdapter(FragmentManager fm, List<Fragment> fragments) {
super(fm);
this.fragments = fragments;
mFragmentTags = new HashMap<Integer, String>();
}
@Override
public Fragment getItem(int position) {
return this.fragments.get(position);
}
}
答案 0 :(得分:0)
你的CountryFragment是viewpager的一部分吗?如果是这样,那么您可以在寻呼机适配器中拥有片段的本地存储,然后使用该位置从viewpager适配器获取片段。
如果你的适配器扩展了FragmentStatePagerAdapter,你必须实现getItem()方法。
你会有这样的事情:
@Override
public void onPageSelected(int position) {
CountryFragment frag = pager.getAdapter().getItem(position);
}
希望这有帮助。