2011-08-31 197 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

相關問題