2013-03-12 63 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参数。

相关问题