Android getActivity()未定义

时间:2013-02-05 11:03:21

标签: android

我的班级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;
    }
}

4 个答案:

答案 0 :(得分:35)

这是因为你在内部类中使用getActivity()。尝试使用:

SherlockFragmentActivity.this.getActivity()

相反,虽然实际上不需要getActivity()部分。在你的情况下, SherlockFragmentActivity .this就足够了。

答案 1 :(得分:26)

如果您想致电您的活动,只需使用即可。当您在片段内时,可以使用getActivity方法。

答案 2 :(得分:7)

您希望班级内有getActivity()。最好使用

yourclassname.this.getActivity()

试试这个。它对你有帮助。

答案 3 :(得分:0)

在我的应用程序中,足以使用:

myclassname.this