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


 }
有帮助吗?

解决方案

A FragmentActivity 是一个实例 Activity (Java风格: FragmentActivity extends Activity).

所以没有必要打电话 getActivity 因为一个 FragmentActivity 已经是一个 Acivity, ,所以只需调用/使用 this 将工作。也没有调用的方法 getActivity 在里面 FragmentActivity 班级。换句话说,你的 B 类正在扩展 Activity 实例。

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

Activity test = (Activity) this;

但如果你的B级延长 Fragment 那么 getActivity 打电话就可以了。

其他提示

FragmentActivity 是替代 Activity支持包. 。自从你的 class B 延伸 FragmentActivity 然后你的 class A 延伸 class B, ,因此你的 class A 也指的是 Activity (又名 FragmentActivity).

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top