我有一个活动,它有一个VideoView和一个共享按钮。在触摸共享按钮时,它调用邮件客户端。下面是我的代码:
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.phrasevideo);
//extraDataHelper.getPhraseDetails(phraseId);
btnshare = (ImageView) findViewById(R.id.btnshare);
videoView = (VideoView) findViewById(R.id.VideoView);
File f=new File(Environment.getExternalStorageDirectory(), "extras/hello.mp4");
Uri video = Uri.parse(f.getAbsolutePath());
videoView.setVideoURI(video);
btnshare.setVisibility(View.VISIBLE);
}});
videoView.start();
btnshare.setOnTouchListener(new OnTouchListener(){
@Override
public boolean onTouch(View arg0, MotionEvent arg1) {
// TODO Auto-generated method stub
final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
emailIntent.setType("text/html");
emailIntent.putExtra(Intent.EXTRA_EMAIL, new String[]{""});
emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Language Hostess");
String emailText = "<html><body><p>Hi friends</p></body></html>";
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, Html.fromHtml(emailText));
startActivityForResult(Intent.createChooser(emailIntent, "Email:"), 1);
return false;
}});
}
一切正常。但是当我在发送或丢弃邮件后返回应用程序时,videoView只是黑色的。这里我想提一下,共享按钮只有在视频没有播放时才会出现。为什么会发生这种情况?这个问题的解决办法是什么?
首先,您需要在onTouch方法结束时返回true,以表明您已经处理了事件。
至于为什么共享按钮只在视频未播放时出现,这是因为您没有在视图(持有视频的视图)中为其分配空间。您需要将其添加到上下文菜单或选项菜单中,供用户选择。
至于为什么屏幕是黑色的,这可能与你没有处理"分享"活动后返回到你的活动有关。一定要有一个onReturn方法。