开始activity。不能从静态上下文中引用非静态方法
Start an activity. Non-static method cannot be referenced from a static context
我正在尝试使用 gridview(http://www.rogcg.com/blog/2013/11/01/gridview-with-auto-resized-images-on-android) and mediaplayer(http://examples.javacodegeeks.com/android/android-mediaplayer-example/) 制作一个 android 应用程序,试图结合我找到的两个教程,这样就可以 select 来自 GridView 的图像启动一个 MediaPlayer activity 来播放歌曲的活动。
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
为什么要使用 MainActivity.startActivity(i)
;
请使用startActivity(i)
代替。
v.getContext().startActivity(i);
在调用 startActivity 或使用全局上下文之前从您的视图中获取上下文
根据您的教程,您将适配器 class 放置在 MainActivity.class
这就是为什么您也可以使用下一种调用方式
MainActivity.this.startActivity(i);
删除 MainActivity
只需使用 startActivity(i)
我正在尝试使用 gridview(http://www.rogcg.com/blog/2013/11/01/gridview-with-auto-resized-images-on-android) and mediaplayer(http://examples.javacodegeeks.com/android/android-mediaplayer-example/) 制作一个 android 应用程序,试图结合我找到的两个教程,这样就可以 select 来自 GridView 的图像启动一个 MediaPlayer activity 来播放歌曲的活动。
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
为什么要使用 MainActivity.startActivity(i)
;
请使用startActivity(i)
代替。
v.getContext().startActivity(i);
在调用 startActivity 或使用全局上下文之前从您的视图中获取上下文 根据您的教程,您将适配器 class 放置在 MainActivity.class 这就是为什么您也可以使用下一种调用方式
MainActivity.this.startActivity(i);
删除 MainActivity
只需使用 startActivity(i)