2013-03-12 98 views
0

我正在嘗試從圖庫中播放視頻。點擊按鈕後,它應該開始在videoView中播放視頻。但我得到了例外,那個特化的孩子已經有了父母。以下是我的代碼:Java運行庫illegalgastateexception。指定的孩子已經有父母

public class MainActivity extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    Button bt= (Button) findViewById(R.id.button1); 
    final String filename = "/sdcard/myvideo.mp4"; 
    Log.e("Video Error", "Problem Below"); 
    final VideoView videoView1 = (VideoView)findViewById(R.id.videoview); 
     Log.e("Video Error", "Problem Above"); 
    setContentView(videoView1); 
    videoView1.setVideoPath(filename); 
    // videoView1.setMediaController(MainActivity.this); 
    videoView1.requestFocus(); 
    bt.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
       //String fileName = "android.resource://" + getPackageName() + "/" + R.raw.sample; 

       Toast.makeText(getApplicationContext(), "Hey Baby", 5000); 
       //videoView1.start(); 
       //Exit after saved 
      // finish(); 

     } 
    }); 

} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.main, menu); 
    return true; 
} 
} 

當我嘗試初始化我VideoView它提供了以下異常:

:12:11.838: E/AndroidRuntime(1124): FATAL EXCEPTION: main 
03-12 19:12:11.838: E/AndroidRuntime(1124): java.lang.RuntimeException: Unable to start  activity ComponentInfo{com.et.getimages/com.et.getimages.MainActivity}: java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first. 

請幫助。

回答

0

我懷疑它會因爲你打電話setContentView()兩次。第一次創建VideoView,然後setContentView(videoView1);

但是,如果沒有完整的堆棧跟蹤,則無法分辨。

p.s.你要添加show()你敬酒,使其顯示

0

您可以設置內容視圖在此聲明:

setContentView(R.layout.activity_main);

,那麼你從layout/activity_main.xml定義的另一個視圖視圖下:

(VideoView)findViewById(R.id.videoview);

這是actareally子layout/activity_main.xml

,然後再次嘗試設置內容視圖:

setContentView(videoView1);

videoView1已經有家長因爲它是layout/activity_main.xml一部分,所以你不能因爲這種方法被賦予設立根視圖setContentView()使用此視圖in參數。

相關問題