编译错误:对非静态方法的静态引用
问题描述:
我无法从另一个类中调用方法startVideo()。当我尝试编译,我得到以下错误:编译错误:对非静态方法的静态引用
Cannot make a static reference to the non-static method findViewById(int) from the type Activity
这里是startVideo()方法的代码:
public static void startVideo(){
startButton = (Button) findViewById(R.id.start_btn);
startButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if(width>1000){
setContentView(R.layout.lesson_large);
}else{
setContentView(R.layout.lesson);
}
//@@@ FOR INTRO AV @@@//
VideoView videoView = (VideoView) findViewById(R.id.videoView1);
MediaController mediaControler = new MediaController(Main.this);
mediaControler.setAnchorView(videoView);
Uri introVideo = Uri.parse(statics.urlAv + "AV264.MP4");
videoView.setMediaController(mediaControler);
videoView.setVideoURI(introVideo);
videoView.start();
//@@@ FOR LESSON/SUBLESSSON AV @@@//
videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
public void onCompletion(MediaPlayer mp) {
VideoView videoView = (VideoView) findViewById(R.id.videoView1);
MediaController mediaControler = new MediaController(Main.this);
mediaControler.setAnchorView(videoView);
Uri video = Uri.parse(statics.urlAv + "AV264.MP4");
videoView.setMediaController(mediaControler);
videoView.setVideoURI(video);
videoView.start();
}
});
}
});
menu();
exit();
}
任何帮助真的会被赞赏。谢谢
答
你打电话给findViewById它不是来自你的静态方法的静态方法。实例方法只能在实例上调用。
要么你应该让非静态,或创建类的实例存在,并使用它的findViewById
标签使代码块不满。你应该尝试空格。 –