-1

Я создаю swipeable вкладку Шерлока. Я использовал этот учебник, чтобы сделать это:как начать деятельность внутри фрагмента viewpager

Android ActionBarSherlock ViewPager Tabs Tutorial

Однако, когда я хочу, чтобы начать деятельность внутри фрагмента (например, FragmentTab1) Мне нужен контекст для создания намерения и начать деятельность. Я в классе Fragment и не имею доступа к контексту! Я также не могу использовать getActivity(), потому что FragmentTab1 создается внутри функции getItem() в классе FragmentPagerAdapter. Что мне делать ?!

+1

Приходите на человека, вы держите фрагменты внутри Действия не наоборот –

+0

, пожалуйста, прочитайте ссылку, а затем напишите комментарий человек !!! :( –

+0

со всем уважением, любезно предоставили панель инструментов (v7) с SlidingTabLayout, это сэкономит вам время и даст вам достаточно гибкости, https://developer.android.com/samples/SlidingTabsBasic/src/com.example.android. common/view/SlidingTabLayout.html –

ответ

1

Sherlock Фрагменты работы с getSherlockActivity() вместо getActivity() Вы должны попробовать использовать

getSherlockActivity().startActivity(...)

+0

getSherlockActivity() хорош, когда я начинаю фрагмент из sherlockFragmentActivity, а не из FragmentPagerAdapter! –

0

Я нахожусь в классе Fragment и не имеют доступа к связи!

Да, это так. Вызовите getActivity(), чтобы вернуть Activity, на котором размещен этот фрагмент. Activity наследует от Context.

Я не могу использовать getActivity(), потому что FragmentTab1 создается внутри функции getItem() в классе FragmentPagerAdapter.

А? Это не так волшебно приводит к исчезновению метода getActivity().

По какой-то причине вы используете ActionBarSherlock, который автор устарел на 20 месяцев. Если ваш фрагмент равен SherlockFragment, вместо этого вам нужно будет позвонить getSherlockActivity().

+0

can вы читаете ссылку, которую я вставлял в свой пост, и меняли FragmentTab1 и запускали на нем пример? –

+0

@ user3212159: В этом учебнике нет ничего, что могло бы стать триггером для запуска активности (элемент панели действий, кнопка и т. д.). Вы можете отредактировать свой вопрос и объяснить ** полностью и точно **, что вы подразумеваете под «началом выборочной деятельности на нем». – CommonsWare

+0

предположим, что у нас есть (например, myActivity). Я должен начать эту деятельность следующим образом: 'startActivity (новый Intent (getSherlockActivity(), myActivity.class)).'. но он не работает и возвращает ошибку исключения; –