2011-08-31 5 views
1

다른 클래스에서 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(); 
} 

어떤 도움을 정말 이해할 수있을 것이다. 감사합니다

+0

탭은 코드 블록 불행하게입니다 사용해야합니다. 대신 띄어쓰기를 시도해야합니다. –

답변

5

당신은 findViewById를 호출합니다. 정적 인 메소드에서 정적 메소드가 아닙니다. 인스턴스 메소드는 인스턴스에서만 호출 할 수 있습니다.

어느 당신이 비 정적 만들거나이 클래스의 인스턴스를 생성하고 findViewById를

관련 문제