문제

나는 다른 추상 클래스를 확장하는 이 클래스 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 Aclass B를 확장하므로 class AActivity (a.k.a FragmentActivity)를 참조합니다.

짧은 시간을 보내면 어떤 메소드를 호출 할 필요가 없습니다.this 키워드를 사용하여 활동 인스턴스를 참조하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top