从活动onpageselected事件android获取片段中隐藏的textview值

时间:2015-09-25 11:28:07

标签: android android-fragments android-viewpager

我想获取片段页面中设置的隐藏值以便对其进行处理。我在片段页面中设置隐藏值,并希望在活动页面中获取隐藏值,并在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);

    }
}

1 个答案:

答案 0 :(得分:0)

你的CountryFragment是viewpager的一部分吗?如果是这样,那么您可以在寻呼机适配器中拥有片段的本地存储,然后使用该位置从viewpager适配器获取片段。

如果你的适配器扩展了FragmentStatePagerAdapter,你必须实现getItem()方法。

你会有这样的事情:

@Override
    public void onPageSelected(int position) {
        CountryFragment frag = pager.getAdapter().getItem(position);
    }

希望这有帮助。