在FragmentActivity中使用getActivity():android

时间:2012-10-02 15:19:41

标签: android android-activity android-fragmentactivity

我正在使用这个扩展另一个抽象类的类A(这个抽象类扩展了FragmentActivity)和我在A类中的一个函数中我希望得到当前活动A的getActivity()。但每当我使用getActivity时,它给我一个错误,即getActivity()方法没有为我的类定义类型。请帮我 !!我怎么能实现这个?

我的班级A的代码

 public class A extends B
 {
  protected void onCreate(Bundle savedInstanceState) 
   {
    super.onCreate(savedInstanceState);


    setContentView(R.layout.voicing);

    //doing another initializations and stuff//

   }
  }

B类代码

   public abstract class B extends FragmentActivity 
  {


   FragmentAdapter mAdapter;
   ViewPager mPager;
   PageIndicator mIndicator;


 }

2 个答案:

答案 0 :(得分:15)

FragmentActivityActivity的实例(Java样式:FragmentActivity extends Activity)。

所以没有必要调用getActivity因为FragmentActivity已经是Acivity,所以只需调用/使用this即可。此外,getActivity类中没有名为FragmentActivity的方法。换句话说,您的B类正在扩展Activity实例。

因此,在您的A(或B)类中,您可以使用此代码段来获取活动实例:

Activity test = (Activity) this;

但是,如果您的B类延伸Fragment,那么getActivity调用就可以了。

答案 1 :(得分:5)

FragmentActivity支持包Activity的替代品。由于您的class B 延伸 FragmentActivity以及之后class A延伸class B,因此您的class A也提到Activity (又名FragmentActivity)。

简而言之,您不需要调用任何方法。只需使用this关键字来引用您的活动实例。