Android getActivity()未定义

Android getActivity()未定义,android,Android,我的课堂活动中有错误 错误:未为MainActivity类型定义getActivity()方法 public class MainActivity extends SherlockFragmentActivity{ PlaceSlidesFragmentAdapter mAdapter; ViewPager mPager; PageIndicator mIndicator; public static final String TAG = "detailsFra

我的课堂活动中有错误

错误:
未为MainActivity类型定义getActivity()方法

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;
    }
}

如果您想调用您的活动,只需使用。在片段中使用getActivity方法。

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

SherlockFragmentActivity.this.getActivity()

相反,尽管实际上不需要
getActivity()
部分。就你而言,
SherlockFragmentActivity。这个
应该足够了。

你想要
getActivity()
在你的类中。最好用

yourclassname.this.getActivity()

试试这个。这对您很有帮助。

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


myclassname.this

您只需要在片段中使用getActivity()方法,要在activity类中获取上下文,请使用此关键字感谢@GeorgyGobozov正是我所需要的…感谢它解决了我的问题。现在我有另一个问题,但这是另一个主题。嘿,我用了你的答案,但我得到了:没有SherlockFragmentActivity类型的封闭实例在作用域中是可访问的。它在asynctask中,有任何建议吗?@user1654206你知道,
SherlockFragmentActivity
是类的名称。如果不确定类名,请检查导入声明下文件的顶部