FragmentActivity의 getActivity():기계적 인조 인간
-
12-12-2019 - |
문제
나는 다른 추상 클래스를 확장하는 이 클래스 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;
}
해결책
ㅏ 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
(a.k.a FragmentActivity
)를 참조합니다.
짧은 시간을 보내면 어떤 메소드를 호출 할 필요가 없습니다.this
키워드를 사용하여 활동 인스턴스를 참조하십시오.