Вопрос

Я использую этот класс A, который расширяет другой абстрактный класс (и этот абстрактный класс расширяет FragmentActivity), и в одной из моих функций с классом A я хочу получить getActivity() для моей текущей активности A.Но всякий раз, когда я использую getActivity, мне выдается ошибка, что метод getActivity() не имеет определенного типа для моего класса.Пожалуйста, помогите мне !!Как я могу этого добиться??

Код для моего класса А

 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 (он же FragmentActivity).

Короче говоря, вам не нужно вызывать какой-либо метод.просто используйте this ключевое слово для ссылки на экземпляр вашей активности.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top