我正在使用这个扩展另一个抽象类的类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;
}
答案 0 :(得分:15)
FragmentActivity
是Activity
的实例(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
关键字来引用您的活动实例。