开始一项活动.无法从静态上下文引用非静态方法

Sth*_*hlm 1 android gridview static-methods

我正在尝试使用gridview(http://www.rogcg.com/blog/2013/11/01/gridview-with-auto-resized-images-on-android)和mediaplayer(http:/ /examples.javacodegeeks.com/android/android-mediaplayer-example/)试图结合我发现的两个教程,这样就可以从GridView中选择一个图像,启动一个播放歌曲的MediaPlayer活动.

GridView教程建议这样做以启用单击:

    gridView.setOnItemClickListener(new AdapterView.OnItemClickListener()
    {
        public void onItemClick(AdapterView<?> parent, View v, int position, long id)
        {
            // this 'mActivity' parameter is Activity object, you can send the current activity.
            Intent i = new Intent(MainActivity.this, AndroidMediaPlayer.class);
            MainActivity.startActivity(i);
        }
    });
Run Code Online (Sandbox Code Playgroud)

但我无法解决问题并得到警告:

Non-static method 'startActivity(android.content.Intent)' cannot be referenced from a static context
Run Code Online (Sandbox Code Playgroud)

onc*_*2go 6

v.getContext().startActivity(i);
Run Code Online (Sandbox Code Playgroud)

在调用startActivity或使用全局上下文之前从视图中获取上下文根据您的教程,您在MainActivity.class中放置了适配器类,这就是为什么您也可以使用下一类调用

MainActivity.this.startActivity(i);
Run Code Online (Sandbox Code Playgroud)