2

我正在使用这个类 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;


 }
4

2 回答 2

16

AFragmentActivityActivity(Java 风格: FragmentActivity extends Activity) 的一个实例。

所以调用没有意义,getActivity因为 aFragmentActivity已经是a Acivity,所以只需调用/使用this就可以了。getActivity类中也没有调用方法FragmentActivity。换句话说,您的 B 类正在扩展一个Activity实例。

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

Activity test = (Activity) this;

但是,如果您的 B 类扩展Fragment,那么该getActivity调用将起作用。

于 2012-10-02T15:24:07.960 回答
5

FragmentActivityActivity支持包的替代品。由于您的class B extends FragmentActivity和后来的class Aextends class B,因此您class A也指的是Activity(aka FragmentActivity)。

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

于 2012-10-02T15:25:12.750 回答