如何从片段活动中的片段访问ImageButton?

问题描述:

我正在使用ViewPager并使用FragmentPage适配器在片段活动中加载多个片段。我想要访问包含ImageButton的片段。任何一个可以帮助我从片段活动中的片段访问Imagebutton如何从片段活动中的片段访问ImageButton?

这里是我的代码:

片段活动

 /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main_gallery); 
     mAdapter = new MyAdapter(getSupportFragmentManager()); 

     mPager = (CustomPager) findViewById(R.id.pager); 
     mPager.setAdapter(mAdapter); 
     mPager.setOnPageChangeListener(this); 

     pagerLayout = (LinearLayout) findViewById(R.id.tour_pager_lay); 
     mPageControl = (PageControl)findViewById(R.id.horizontal_pager); 
     mPageControl.addPagerControl(3); 
    } 

    public static class MyAdapter extends FragmentPagerAdapter { 
     public MyAdapter(FragmentManager fm) { 
      super(fm); 
     } 

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

     @Override 
     public Fragment getItem(int position) { 
      switch (position) { 
      case 0: 
       return new ImageFragment(R.drawable.landing_logo); 
      case 1: 
       return new ImageFragment(R.drawable.welcome_postit); 
      case 2: 

       return new LoginFragment(); 
      case 4: 
       return new RegisterFragment(); 

      default: 
       return null; 
      } 
     } 
    } 

假设你的ImageButton是您RegisterFragment,那么你可以做:

RegisterFragment tmp = ((RegisterFragment) ((MyAdapter) mPager.getAdapter()).instantiateItem(mPager, 4)); 

//your ImageButton should be public or you can create a getter or something, I assume that it's public 
tmp.imageButton.setText("foo"); 
+0

它给我的NullPointerException :( – Newts 2013-04-10 05:46:22

+0

是的,我看到了,这是因为你的代码中有错误,我没有看到它,它在你的适配器中getItem中遇到HOD。你有'情况4:返回新的RegisterFragment();'但你只有3页,所以它应该是'情况3:...'。在我的代码中,你应该将'instantiateItem(mPager,4)'中的参数改为'instantiateItem(mPager,3)'。 – 2013-04-10 05:50:06

+0

我这样做,它再次给我同样的错误 – Newts 2013-04-10 05:57:25