Android 视频播放完成后的对话框(OnCompletionListener+;对话框)
我正在尝试在视频完成后获得一个警报对话框 这是我目前掌握的代码:Android 视频播放完成后的对话框(OnCompletionListener+;对话框),android,dialog,onclicklistener,Android,Dialog,Onclicklistener,我正在尝试在视频完成后获得一个警报对话框 这是我目前掌握的代码: public class VideoActivity extends Activity{ private Context mContext; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.v
public class VideoActivity extends Activity{
private Context mContext;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.videoview);
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
VideoView vv = (VideoView) findViewById(R.id.videoview);
MediaController mc = new MediaController(this);
public OnCompletionListener onCompletion(final String key){
OnCompletionListener ocl = new OnCompletionListener(){
public void onCompletion(MediaPlayer mp) {
AlertDialog.Builder dialog = new AlertDialog.Builder(mContext); //Lag en dialog utifra kontekst
dialog.setTitle("Hello"); //Hent ut tittelen til overlayItem
dialog.setMessage("hello"); //Hent ut teksten til overlayItem
dialog.setCancelable(false);
dialog.setPositiveButton("Something", new OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
Intent intent = new Intent(mContext, VideoMenu.class);
mContext.startActivity(intent);
}
});
dialog.show(); //Vis dialogen
}
还有别的办法吗?我一直在谷歌上疯狂搜索,但找不到任何帮助。通过这段代码,我得到了一个空指针
谢谢!:)
11-29 23:12:54.215:E/AndroidRuntime(8445):致命异常:main
11-29 23:12:54.215:E/AndroidRuntime(8445):java.lang.NullPointerException
11-29 23:12:54.215:E/AndroidRuntime(8445):在android.app.AlertDialog.resolveDialogTheme(AlertDialog.java:142)上
11-29 23:12:54.215:E/AndroidRuntime(8445):在android.app.AlertDialog$Builder上。(AlertDialog.java:359)
11-29 23:12:54.215:E/AndroidRuntime(8445):在com.example.norskattraksjon.VideoActivity$1.onCompletion(VideoActivity.java:97)
11-29 23:12:54.215:E/AndroidRuntime(8445):在android.widget.VideoView$3.onCompletion(VideoView.java:345)
11-29 23:12:54.215:E/AndroidRuntime(8445):在android.media.MediaPlayer$EventHandler.handleMessage(MediaPlayer.java:1773)
11-29 23:12:54.215:E/AndroidRuntime(8445):在android.os.Handler.dispatchMessage(Handler.java:99)上
11-29 23:12:54.215:E/AndroidRuntime(8445):在android.os.Looper.loop(Looper.java:137)
11-29 23:12:54.215:E/AndroidRuntime(8445):位于android.app.ActivityThread.main(ActivityThread.java:4517)
11-29 23:12:54.215:E/AndroidRuntime(8445):位于java.lang.reflect.Method.Invokenactive(本机方法)
11-29 23:12:54.215:E/AndroidRuntime(8445):在java.lang.reflect.Method.invoke(Method.java:511)
11-29 23:12:54.215:E/AndroidRuntime(8445):在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:993)
11-29 23:12:54.215:E/AndroidRuntime(8445):位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:760)
11-29 23:12:54.215:E/AndroidRuntime(8445):在dalvik.system.NativeStart.main(本机方法)
您已经定义了mContext
,但仍需要对其进行初始化:
private Context mContext; // Defined
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mContext = this; // Initialized
...
发布日志猫错误,以便我们可以看到发生了什么。你初始化了mContext吗?我已经初始化了mContext。问题是你的主题。。。首先,您的目标API或运行此操作的设备的API是什么?请检查
mContext
。API目标是15,而mContext定义为一个字段!谢谢你的帮助!
private Context mContext; // Defined
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mContext = this; // Initialized
...