Android:在扩展视图中调用父对象的方法

Android:在扩展视图中调用父对象的方法,android,view,nullpointerexception,parent,Android,View,Nullpointerexception,Parent,我正在进行一项活动(A),其中有 private SpotOnView view; // displays and manages the game 在活动A的OnCreate中 在SpotOnView中: 在该视图的相对视图中,有一个倒计时计时器,当时间结束时,将创建一个用于回放或退出的对话框,代码如下: public void replay_dialog() { pause(); final Dialog dialog1 = new Dialog(getContext()

我正在进行一项活动(A),其中有

private SpotOnView view; // displays and manages the game
在活动A的
OnCreate中
在SpotOnView中: 在该视图的相对视图中,有一个倒计时计时器,当时间结束时,将创建一个用于回放或退出的对话框,代码如下:

public void replay_dialog() 
{
    pause();
    final Dialog dialog1 = new Dialog(getContext(), android.R.style.Theme_Translucent_NoTitleBar);
    WindowManager.LayoutParams lp = dialog1.getWindow().getAttributes();
    lp.dimAmount = 0.7f;
    dialog1.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
    ...
    alert_quit.setOnClickListener(new OnClickListener() 
    {
        public void onClick(View v) 
        {               
            ActivityA.onBackPressed();
        }
    });

    alert_replay.setOnClickListener(new OnClickListener() 
    {
        public void onClick(View v) 
        {               
            ActivityA.restarting(); //Error line 570
        }
    }); 
日志: Logcat2 if((ActivityA)getContext()).restarting(); 问题: logcat为ActivityA中的调用方法声明
NullPointerException
。扩展视图如何在保留活动中调用方法


谢谢

如果视图由
ActivityA
托管,则您应该能够执行以下强制转换

   ((ActivityA)getContext()).restarting();

如果视图由
ActivityA
托管,您应该能够执行以下转换

   ((ActivityA)getContext()).restarting();

您应该用视图中的实例替换ActivityA。@mmbrian:您可以说得更详细些吗?您应该用视图中的实例替换ActivityA。@mmbrian:您可以说得更详细些吗?仍然会出错…发布了新的日志,可能是因为ActivityA中有一个onPause方法来调用pauseI的视图,实际上我只是想传递一个转到另一个活动的意图以退出,并传递一个转到ActivityA(再次是循环)以重播的意图,但是
ActivityA.startActivityForResult(意图,0)仍然有同样的问题我已经重新构造了调用方法的条件,现在它正在工作!谢谢它仍然会出错…发布了新的日志猫,可能是因为ActivityA中有一个onPause方法来调用pauseI的视图。实际上,我只想传递一个前往另一个活动进行退出的意图,并传递一个前往ActivityA(再次是循环)进行重播的意图,但是
ActivityA.startActivityForResult(意图,0)仍然有同样的问题我已经重新构造了调用方法的条件,现在它正在工作!谢谢
11-20 00:15:51.320: E/AndroidRuntime(31395): FATAL EXCEPTION: main
11-20 00:15:51.320: E/AndroidRuntime(31395): java.lang.NullPointerException
11-20 00:15:51.320: E/AndroidRuntime(31395):    at com.abc.abc.SpotOnView$5.onClick(SpotOnView.java:570)
11-20 00:15:51.320: E/AndroidRuntime(31395):    at android.view.View.performClick(View.java:4223)
11-20 00:15:51.320: E/AndroidRuntime(31395):    at android.view.View$PerformClick.run(View.java:17275)
11-20 00:15:51.320: E/AndroidRuntime(31395):    at android.os.Handler.handleCallback(Handler.java:615)
11-20 00:15:51.320: E/AndroidRuntime(31395):    at android.os.Handler.dispatchMessage(Handler.java:92)
11-20 00:15:51.320: E/AndroidRuntime(31395):    at android.os.Looper.loop(Looper.java:137)
11-20 00:15:51.320: E/AndroidRuntime(31395):    at android.app.ActivityThread.main(ActivityThread.java:4898)
11-20 00:15:51.320: E/AndroidRuntime(31395):    at java.lang.reflect.Method.invokeNative(Native Method)
11-20 00:15:51.320: E/AndroidRuntime(31395):    at java.lang.reflect.Method.invoke(Method.java:511)
11-20 00:15:51.320: E/AndroidRuntime(31395):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1008)
11-20 00:15:51.320: E/AndroidRuntime(31395):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:775)
11-20 00:15:51.320: E/AndroidRuntime(31395):    at dalvik.system.NativeStart.main(Native Method)
11-20 00:31:42.315: E/AndroidRuntime(6089): FATAL EXCEPTION: main
11-20 00:31:42.315: E/AndroidRuntime(6089): java.lang.RuntimeException: Unable to pause activity {com.abc.abc/com.abc.abc.ActivityA}: java.lang.NullPointerException
11-20 00:31:42.315: E/AndroidRuntime(6089):     at android.app.ActivityThread.performPauseActivity(ActivityThread.java:2879)
11-20 00:31:42.315: E/AndroidRuntime(6089):     at android.app.ActivityThread.performPauseActivity(ActivityThread.java:2835)
11-20 00:31:42.315: E/AndroidRuntime(6089):     at android.app.ActivityThread.handlePauseActivity(ActivityThread.java:2813)
11-20 00:31:42.315: E/AndroidRuntime(6089):     at android.app.ActivityThread.access$800(ActivityThread.java:140)
11-20 00:31:42.315: E/AndroidRuntime(6089):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1238)
11-20 00:31:42.315: E/AndroidRuntime(6089):     at android.os.Handler.dispatchMessage(Handler.java:99)
11-20 00:31:42.315: E/AndroidRuntime(6089):     at android.os.Looper.loop(Looper.java:137)
11-20 00:31:42.315: E/AndroidRuntime(6089):     at android.app.ActivityThread.main(ActivityThread.java:4898)
11-20 00:31:42.315: E/AndroidRuntime(6089):     at java.lang.reflect.Method.invokeNative(Native Method)
11-20 00:31:42.315: E/AndroidRuntime(6089):     at java.lang.reflect.Method.invoke(Method.java:511)
11-20 00:31:42.315: E/AndroidRuntime(6089):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1008)
11-20 00:31:42.315: E/AndroidRuntime(6089):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:775)
11-20 00:31:42.315: E/AndroidRuntime(6089):     at dalvik.system.NativeStart.main(Native Method)
11-20 00:31:42.315: E/AndroidRuntime(6089): Caused by: java.lang.NullPointerException
11-20 00:31:42.315: E/AndroidRuntime(6089):     at com.abc.abc.SpotOnView.pause(SpotOnView.java:201)
11-20 00:31:42.315: E/AndroidRuntime(6089):     at com.abc.abc.ActivityA.onPause(ActivityA.java:176)
11-20 00:31:42.315: E/AndroidRuntime(6089):     at android.app.Activity.performPause(Activity.java:5304)
11-20 00:31:42.315: E/AndroidRuntime(6089):     at android.app.Instrumentation.callActivityOnPause(Instrumentation.java:1240)
11-20 00:31:42.315: E/AndroidRuntime(6089):     at android.app.ActivityThread.performPauseActivity(ActivityThread.java:2866)
11-20 00:31:42.315: E/AndroidRuntime(6089):     ... 12 more
   ((ActivityA)getContext()).restarting();