Android getActivity() - undefined
У меня есть ошибки в моем классе MainActivity.
Ошибка: The method getActivity() is undefined for the type MainActivity
public class MainActivity extends SherlockFragmentActivity{
PlaceSlidesFragmentAdapter mAdapter;
ViewPager mPager;
PageIndicator mIndicator;
public static final String TAG = "detailsFragment";
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.main,
container, false);
mAdapter = new PlaceSlidesFragmentAdapter(getActivity()
.getSupportFragmentManager());
mPager = (ViewPager) view.findViewById(R.id.pager);
mPager.setAdapter(mAdapter);
mIndicator = (CirclePageIndicator) view.findViewById(R.id.indicator);
mIndicator.setViewPager(mPager);
((CirclePageIndicator) mIndicator).setSnap(true);
mIndicator
.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageSelected(int position) {
Toast.makeText(MainActivity.this.getActivity(),
"Changed to page " + position,
Toast.LENGTH_SHORT).show();
}
@Override
public void onPageScrolled(int position,
float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
return view;
}
}
Ответы
Ответ 1
Это потому, что вы используете getActivity()
внутри внутреннего класса. Попробуйте использовать:
SherlockFragmentActivity.this.getActivity()
хотя на самом деле нет необходимости в части getActivity()
. В твоем случае,
SherlockFragmentActivity .this
должно быть достаточно.
Ответ 2
Если вы хотите назвать свою деятельность, просто используйте this. Вы используете метод getActivity, когда находитесь внутри фрагмента.
Ответ 3
Вы хотите getActivity()
внутри своего класса. Лучше использовать
yourclassname.this.getActivity()
Попробуйте это. Это полезно для вас.