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

时间:2015-07-01 13:47:11

标签: android gridview static-methods

我正在尝试使用gridview(http://www.rogcg.com/blog/2013/11/01/gridview-with-auto-resized-images-on-android)和媒体播放器(http://examples.javacodegeeks.com/android/android-mediaplayer-example/)尝试组合我发现的两个教程来创建一个Android应用程序,这样就可以从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);
        }
    });

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

Non-static method 'startActivity(android.content.Intent)' cannot be referenced from a static context

3 个答案:

答案 0 :(得分:6)

v.getContext().startActivity(i);

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

MainActivity.this.startActivity(i);

答案 1 :(得分:0)

为什么使用 MainActivity.startActivity(i);

请使用startActivity(i) insted。

答案 2 :(得分:-1)

删除MainActivity只需使用startActivity(i)

相关问题