getActivity() с помощью FragmentActivity:андроид
-
12-12-2019 - |
Вопрос
Я использую этот класс 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
ключевое слово для ссылки на экземпляр вашей активности.